Python中文编码的一些问题
Python文件的中文编码
在Python文件头部加入
# encoding: utf-8
即可在文件内使用中文注释。
输入的中文编码
读取的外部文件的编码,跟文件本身存储编码有关,可以在读取的时候加一个decode
str_u = str_gbk.decode('gbk') #将gbk编码的str_gbk解析成unicode编码str_u
统一解码成unicode,方便处理。
输入内容的编码跟当前系统使用的编码有关,同样可以在读取的时候加一个decode。
输出的中文编码
要将内容输出,需要将内容先转换成系统的编码,否则可能会出现错误
str_gbk = str_u.encode('gbk') #将unicode编码的str_u解析成gbk编码的str_gbk
比如windows下一般都是转换成gbk再做输出。
注意:源内容需要是unicode编码。
原则
总体原则就是:
输入的内容统一使用decode('xxx'),转换成uincode编码,然后做各种处理
输出的内容统一使用encode('xxx'),转换成系统编码(一般是gbk),然后做输出处理
这样可以保证在python里面处理的所有内容编码都是unicode,方便管理