代码改变世界

python学习笔记(2)

2015-11-03 19:51  znyihan  阅读(118)  评论(0)    收藏  举报

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'))