呓语 | 杨英明的个人博客

专注于c++、Python,欢迎交流

By

关于python中的字符串编码理解

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

##原创声明 **转载请注明:[呓语](http://www.yangyingming.com) » [关于python中的字符串编码理解](http://www.yangyingming.com/article/18)**