Python3字符串的编码
我们先要了解:
计算机是美国人发明的,因此最初只有127个AscII编码,主要指26个英文字母(大小写),数字和一些符号;
而处理中文至少要2个字节,还不能和AscII编码冲突,因此,中国制定了GB2312编码,用来把中文编进去;
而全世界有上百种语言,各国有各国的标准,冲突难免,结果是,在多语言混合的文本中,显示出来会有乱码.
需要一种新的编码一统天下,那就是Unicode编码.
AscII编码是一个字节,而Unicode编码一般是二个字节
如果你写的文本基本上全部是英文的话,用Unicode编码会比AscII编码要多一倍以上的空间,在存储和传输上不利.因此出现了把Unicode编码转化为"可变长编码"的UTF-8编码.
一个中文字符经过UTF-8编码后一般占用三个字节,而1个英文字符只占用1个字节.
对于单个字符的编码,Python提供ord()函数获取字符整数表示,chr()把整数表示转换成对应字符.
encode()方法把str-->bytes以利于网络传输;
decode()方法把网络上读取的字节流bytes转换成str.
eg:
>>>s=‘中华人民共和国‘
print(s)
b=s.encode(‘utf-8‘)
print(b)
print(b.decode(‘utf-8‘))
原文:http://www.cnblogs.com/znyihan/p/4934194.html