python编码问题
1 源文件编码在文件头部使用coding声明。告诉python解释器该代码文件所使用的字符集。
#/usr/bin/python
#coding: utf8
2 内部编码
代码文件中的字符串,经过decode以后,被转换为统一的unicode格式的内部数据,类似于u'*'。unicode数据可以使用encode函数,再自由转换为其他格式的数据,相当于一个统一的平台。
直接输入unicode数据
>>> u'你好'
u'/u4f60/u597d'
将unicode数据转换为gb2312格式
>>> u'你好'.encode('gb2312')
'/xc4/xe3/xba/xc3'
输入数据的格式取决于所用shell终端的编码设置,本例中为zh_CN
[root@dsdf]# echo $LANG
zh_CN
解码同时转换为utf8
>>> '你好'.decode('gb2312').encode('utf8')
'/xe4/xbd/xa0/xe5/xa5/xbd'
3 外部输入的编码
其实这个和在python交互shell中输入的字符串,所遇到的情况基本一样。但程序中常常用到从网络,文件读取的数据,故此单独列出,需要特别注意其编码格式是否于系统要求相符。
参考:
http://wz.youkuaiyun.com/url/748349/