python文件的编码 v2.7
首先,
encode('codec') => 把unicode转化成其他codec的str;
decode('codec') => 把其他codec的str转换成unicode
python默认charset:'ascii'.
import sys
print sys.getdefaultencoding()
如果字符集是'ascii'码,那文件中不能处理中文。在开头引入# coding=utf-8 或者 # - coding:utf-8 -,表明支持utf-8字符集。
打印unicode报错 --> 检查是否当前编码是utf-8,然后encode('utf-8')。比如从网上爬下来的中文数据,首先要decode('GBK')。为了显示出来还要encode('utf-8')
utf-8和utf-16
utf-8是变长编码,0000-007F一个字节,0080-07FF->两个字节,其他->三个字节
utf-16是固定两个字节编码方式
python中str.encode("targetcodec")其实做了隐式的str.decode("defaultcodec").encode("targetcodec"),而在print一个unicode的时候则会隐式做encode('defaultcodec)操作,这也是经常会出错的一个原因。解决办法是修改defaultcodec:
s=u'中文'
reload(sys)
sys.setdefaultencoding('utf-8')
print s