python字符串转码_Python字符串的解码与转码
⾸先要搞清楚,字符串在Python内部的表⽰是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另⼀种编码。
decode的作⽤是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表⽰将gb2312编码的字符串转换成unicode编码。
encode的作⽤是将unicode编码转换成其他编码的字符串,如de('gb2312'),表⽰将unicode编码的字符串转换成gb2312编码。
在某些IDE中,字符串的输出总是出现乱码,甚⾄错误,其实是由于IDE的结果输出控制台⾃⾝不能显⽰字符串的编码,⽽不是程序本⾝的问题。
例如:ljq.py,编码为utf8,包含内容如下:
#-*-coding:utf-8-*-
s='中⽂'
print type(s) #查看s的字符类型
prints
s.decode('utf8') #解码utf8,默认的编码⽅式是unicode
s.decode('gbk', "ignore") #解码utf8,忽略其中有异常的编码,仅显⽰有效的编码
s.decode('gbk', 'replace')printtype(s)prints
printtype(s)print s
ljq.py编码必需与s.decode('utf8')指定的编码⼀致,不然会抛出解码异常信息,可以通过s.decode("gbk", "ignore")或s.decode("gbk", "replace")来解决。
另外对于⼀些包含特殊字符的编码,直接解码可能会报错,可以使⽤对于的参数来设置。如:
s.decode("utf-8", "ignore") 忽略其中有异常的编码,仅显⽰有效的编码
s.decode("utf-8", "replace") 替换其中异常的编码,这个相对来可能⼀眼就知道那些字符编码出问题了。
unicode编码转换二进制从unicode转str,被看做是把⼀个信息⽂本编码为⼆进制字节流的过程,要⽤encode⽅法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论