这段python代码测试时,为啥会报错?从测试看,是编码的问题,一有中文输出结果,网页就无法显示结果。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这段python代码测试时,为啥会报错?从测试看,是编码的问题,一有中文输出结果,网页就无法显示结果。相关的知识,希望对你有一定的参考价值。

请大牛们指点。测试环境为:xp32位(中文)+python2.7+powershell
代码已经上传至:http://www.oschina.net/code/snippet_1174858_23265 ;2.服务器端运行后,客户端直接通过浏览器网页上进行测试,测试结果print在网页上,省去了调用cmd命令的操作;3.测试时遇到问题,ipconfig、route print等命令无法正常执行;但是ping命令是正常的;4.测试问题时,遇到的报错信息是:UnicodeEncodeError: 'latin-1' codec can't encode characters in position 85-89: ordinal not in range(256)
5.进一步测试发现,出错的都是输出结果中包含中文的,应该还是编码的问题......

从你的描述看,不是在文件开沟加编码可以解决的。你的中文是来自网页内容而不是代码中。
你是用'latin-1'来对收到的信息编码吧?而用'latin-1'是不能包含中文字的。
如果网页信息包含中文,你应该用另一种编码。
参考技术A 直接屏蔽就可以了。就是编码的问题,你在自己浏览器里面看,是GB2312编码,获取本地命令执行结果也是GB2312,完全不用再对字符编码解码是一样的嘛,所以不用画蛇添足了。
UTF-8用不用都一样的,只要浏览器能识别的编码方式就可以了。
参考技术B 简答:
是编码的问题。
最好做法是,都确保是utf-8。
详解:

已经回复你的oschina上面的帖子了。
参考技术C 给数据库与ide环境的编码都保持一致
mysqldb设置数据库编码代码
db.set_character_set('utf8')
dbc.execute('SET NAMES utf8;')
dbc.execute('SET CHARACTER SET utf8;')
dbc.execute('SET character_set_connection=utf8;')
参考技术D 你在开头加上 #coding=gbk 试试

以上是关于这段python代码测试时,为啥会报错?从测试看,是编码的问题,一有中文输出结果,网页就无法显示结果。的主要内容,如果未能解决你的问题,请参考以下文章

python中的多线程为啥会报错?

JUnit单元测试

JUnit单元测试

为啥下面这段python+htmltestrunner的自动化代码执行后,生成的测试报告有问题(见图片)

FastAdmin 发邮件时的一个有趣报错

selenium-python:整个代码有时候不报错正确操作,但有时候就会报错,不懂为啥?