码迷,mamicode.com
首页 > 编程语言 > 详细

python编码encode和decode

时间:2014-06-27 18:40:14      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   color   文件   

计算机里面,编码方法有很多种,英文的一般用ascii,而中文有unicode,utf-8,gbk,utf-16等等。

unicode是 utf-8,gbk,utf-16这些的父编码,这些子编码都能转换成unicode编码,然后转化成子编码,例如utf8可以转成unicode,再转gbk,但不能直接从utf8转gbk

所以,python中就有两个方法用来解码(decode)与编码(encode),解码是子编码转unicode,编码就是unicode转子编码

1.编码

#encoding=utf-8
c=u\u5f00\u59cb\u6267\u884c\u66f4\u65b0\u547d\u4ee4
print c
print c.encode(utf8) print c.encode(gbk)

在这里,文件的编码方式为utf8,控制台的编码方式是utf8
变量c是一个unicode编码的字符串(需要在引号前面加u)

输出的结果为:

开始执行更新命令
开始执行更新命令
?????и???????

因为控制台是utf8编码,所以unicode编码和utf8编码都能识别,但是gbk就不可以了
2.解码

#encoding=utf-8
a = 中文
print a.decode(g‘)
print [a.decode(g)]

这里a为utf8编码,decode方法将utf8解码为unicode编码
输出结果:

中文
[u\u4e2d\u6587]

由于控制台能识别unicode编码,所以需要把字符串放在列表里面才能看到unicode源码

#encoding=utf-8
a = 中文
print [a.decode(gbk)]

因为a是utf8编码的,如果将a用gbk解码,程序就会报错

UnicodeDecodeError: gbk codec cant decode bytes in position 2-3: illegal multibyte sequence

 

 

a = 中文
print a.decode(utf-16)

如果用utf-16解码方法解码utf-8的字符串,程序并不会报错(可能因为它们的编码方式相似),但是返回的是乱码:

?螖

 

python编码encode和decode,布布扣,bubuko.com

python编码encode和decode

标签:style   class   blog   code   color   文件   

原文地址:http://www.cnblogs.com/Xjng/p/3809781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!