python2.x 中中间编码为unicode,一个字符串需要decode为unicode,再encode为其它编码格式(gbk、utf8等)
以gbk转utf8为例:
s = "我是字符串" #gbk编码
s = s.decode('gbk').encode('utf8') #将gbk编码转换为utf8编码,需要先转换为unicode中间编码,再转换为utf8编码
具体过程为:
s | gbk --- decode('gbk') ---> s | unicode --- encode('utf8') ---> s | utf8
代码中的 显式字符串 默认编码为代码文件的编码格式,如果开头没有#coding=[]声明,则默认编码为ascii型(所以存储中文会有问题)
如果开头声明了,例如:
#coding=gbk
则代码中一个显式字符串,例如:
s = '我是字符串'
字符串s会被编码成 gbk 格式存储
详见:python字符串编码及乱码解决方案 讲的不错
Python字符编码详解 这个也可以看一看
Freecode# : www.cnblogs.com/yym2013