20130703-Python中文乱码处理
来源:互联网 发布:淘宝小样能买到正品吗 编辑:程序博客网 时间:2024/06/05 17:29
Python中文乱码
背景:
系统编码方式:utf-8
bug信息:
f = open("hehe", 'r')for s in f: print s.encode('utf-8') #错误行
python解释器报:'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
原因:
错误行调用encode()之前,先调用decode()对s进行解码,由于默认调用decode,python使用其默认编码方式ascii进行解码,导致错误。
bug修复(一)
代码内重新设置默认编码方式
import sysCODE = 'utf-8'reload(sys)sys.setdefaultencoding(CODE) #修改系统默认编码f = open("hehe", 'r')for s in f: print s.encode('utf-8')
说明:
在执行setdefaultencoding(CODE)前一定要先reload(sys),否则报AttributeError没有此属性。引文python解释器在加载完当前环境后,就del sys.setdefaultencoding,卸载掉了此属性。
bug修复(二)
修改python系统文件,将默认编码方式设置为utf8
在python的运行时环境下的site-packages文件夹下新建一个sitecustomize.py,文件内容如下
#encoding=utf8import sysreload(sys)sys.setdefaultencoding('utf8')del sys.setdefaultencoding
说明:
确定当前python的执行环境,可使用代码
from distutils.sysconfig import get_python_libprint get_python_lib()
- 20130703-Python中文乱码处理
- Python中文处理-乱码解决
- 关于python中文输出乱码的处理
- python pdfkit 中文乱码问题处理
- Python处理MLDonkey 下载中文文件乱码问题
- Python处理MLDonkey 下载中文文件乱码问题 (2)
- ubuntu下python处理mysql中文乱码问题
- Python requests库解析中文网页乱码处理方法
- Python爬虫处理抓取数据中文乱码问题
- Python数据库查询中文乱码的问题处理
- JSP中文乱码处理
- JSP中文乱码处理
- 中文乱码处理方案
- JSP中文乱码处理
- 中文乱码处理
- WebSphere处理中文乱码
- Ajax处理中文乱码
- 中文乱码处理办法
- NSArray一些用法
- 最短路径—迪杰斯特拉算法
- 现在开始学习android开发(自看)
- JS对象调用事宜
- android 4.0.1 webkit Event 事件处理过程分析
- 20130703-Python中文乱码处理
- iOS SDK:iOS调试技巧
- 总结下java经常犯的错误
- 使用远程桌面的常见问题及解决办法
- C#页面前台<%%><%#%><%=%>
- Definition of 'When Issued - WI'
- 使用SVPullToRefresh 报错 需要注意 以及一些刷新方法
- numa 局部性调用API
- org.xml.sax.SAXParseException The content of element type "package" must match "(result-types?,inter