一直以来,有关Python的中文问题层出不穷,特别是python2.x版本,python3版本因为统一将字符都转化为unicode编码,所以较比python2.x在处理中文方面有着更好的性能。以下总结相关的几个乱码问:
1.出现'ascii' codec can't encode characters in position... 或是Non-ASCII character ...
解决方法:在文件头加上 "# coding: utf-8"
import sys
reload(sys) # 重新加载
sys.setdefaultencoding('utf8') # 将字符decode成unicode.
print s.encode('uft8')
2. 使用json.dumps(中文)出现的编码问题,加上ensure_ascii=False,如下:
>>> print json.dumps('中文')
"\u4e2d\u6587"
>>> print json.dumps('中文', ensure_ascii=False)
"中文"
3. 中文显示问题,将str转化为unicode之后,如何显示可读的中文, unicode-escape;
>>> s='\u4e2d\u6587'
>>> print s.decode('unicode-escape')
中文