python中的编码问题

2017-05-11  本文已影响0人  Andone1cc

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('utf-8'),表示将unicode编码的字符串str2转换成utf-8编码。

<对于普通的str类型>
str字符串,它本身存储的就是字节码。如果这段代码是在解释器上输入的,那么这个s的格式就是解释器的编码格式,对于windows的cmd而言,就是gbk;如果将段代码是保存后才执行的,比如存储为utf-8,那么在解释器载入这段程序的时候,就会将s初始化为utf-8编码。

str.encode("utf-8") 等价于 s.decode(defaultencoding).encode("utf-8")
defaultencoding设置方法:sys.setdefaultencoding('utf-8')
u = unicode("人生苦短") 等价于 u = unicode("人生苦短",defaultencoding)

str和unicode的区别

str是字节串,由unicode经过编码(encode)后的字节组成的
unicode才是真正意义上的字符串,由字符组成

print函数会自动的做编码转换(按照文件设置的读取编码)

coding=<utf-8>

-- coding: utf-8 --

coding=UTF-8

是用来告诉解释器按照什么编码格式读取这个文件。

上一篇下一篇

猜你喜欢

热点阅读