1.关于编码的知识:
(1)ascii码--》一个字节
(2)gb2312--》两个字节 //国标2312
(3 )IOS-8859(Latin)--》一个字节 //覆盖西欧语言,包括ascii 码内容
(4)UTF-8--》1~4个字节 //可变长编码,单字节兼容ascii码,双字节覆盖西欧语言,三字节中日韩。
windows的cmd下编码为cp936即GBK2312的扩展编码。
2.python中的字符串为字节串(byte string)
>>>byte_str='python巨蟒'
>>>unicode_str=byte_str.decode('cp936') //将byte string进行解码,解码为cp936
>>>unicode_str
u'python\u5de8\u87d2' //u代表unicode编码,由于是 cp936,一个字符占两个字节-16位。
>>>len(unicodestr) //len()返回字符个数。
8
//可以对unicode string进行不同的unicode编码方式变为为不同的 byte string
>>>unicdoe_str.encode('utf-8') //
'python\xe5\xb7\xa8\xe8\x9f\x92' //一个字符1三个字节,\x->16进制。
3.总结:
byte string -> unicode
(1)byte_str.decode('编码规则');
(2)unicode(byte_str,'编码规则');
unicode->byte string
(2)unicode_str.encode('编码规则');
来源:http://yimi128.iteye.com/blog/568580