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