Python字符串的中文编码详解

作者:袖梨 2022-11-14

实例

代码如下 复制代码

>>> s="中文"
>>> s
'xd6xd0xcexc4'
>>> s.decode("gbk")
u'u4e2du6587'
>>> print s.decode("gbk")
中文
>>> print s
中文
>>> s.decode("gbk").encode("gbk")
'xd6xd0xcexc4'
>>> print s.decode("gbk").encode("gbk")
中文
>>>

Python中文乱码

码原因:
因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件。但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台

直接打印utf-8的字符串当然是乱码了。

解决方法:

在控制台打印的地方用一个转码就ok了,打印的时候这么写:

decode是将普通字符串按照参数中的编码格式进行解析,然后生成对应的unicode对象,比如在这里我们代码用的是utf-8,那么把一个字符串转换为unicode就是如下形式:

代码如下 复制代码

s2=’哈’.decode(‘utf-8′)

这时,s2就是一个存储了’哈’字的unicode对象,其实就和unicode(‘哈’, ‘utf-8′)以及u’哈’是相同的。

代码如下 复制代码


print myname.decode('UTF-8').encode('GBK')

比较通用的方法应该是:

代码如下 复制代码

import sys
type = sys.getfilesystemencoding()
print myname.decode('UTF-8').encode(type)

相关文章

精彩推荐