讲真,Python真的什么都好,即使被人广为诟病的速度,其实通过一些优化也差不到哪儿去,毕竟一些关键性的代码也还是用C写的。但是Python的编码问题一直是一个头疼的问题,这不最近在用PyQt写个东西时候又遇到了中文乱码问题,着实有点麻烦。
废话我也不多说,关于字符编码的问题网上一搜一大片,下面谈些实际性的解决方案,如果您用的Python3.x版本那么就请直接忽略吧。
1.首先也是最基础的,在开头声明,采用utf-8编码,别问我为什么,因为它好用。
声明的格式可以如下:
a. # -*- coding:utf-8 -*-
b. # coding:utf8
当然我习惯b方案,因为敲键盘的次数比较少
2.在遇到字符串时,特别是从命令端输入或者是UI控件获取到的字符串,立即转化为unicode,不要用str(),直接用unicode()
unicode_str = unicode(str, encoding='utf-8')
3.对文件进行操作,打开文件的时候,最好用codecs.open,替代open
import codecs
codecs.open('filename', encoding:'utf-8')
关于codecs.open官方文档里是这么描述的:
Note:The wrapped version will only accept the object format defined by the codecs, i.e. Unicode objects for most built-in codecs. Output is also codec-dependent and will usually be Unicode as well.
发表评论: