在写自动运行测试用例,并且生成HTML报告的时候,遇到了这个报错:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)
原因是我的Python版本是2.*,在将中文encode(UTF-8)的时候出现了问题。而在3.*中没有问题。
解决方法:
在代码前端加入
import sys reload(sys) sys.setdefaultencoding('utf8')
即可。
Python 2.x,混淆了 python2 里边的 str 和 unicode 数据类型。有两种----->str字符串(此时字符串的编码类型,对应着你的Python文件本身保存为何种编码有关)和unicode字符串
而在Python 3.*中,字符串则是unicode编码的str。上面这个问题,就是Python2.*渣编码的一个体现。python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii。
参考资料:http://blog.csdn.net/a359680405/article/details/42554095