文内容取自“廖雪峰官方网站的python教程”
https://www.liaoxuefeng.com/wiki/1016959663602400/1017075323632896

字符编码

ASCII编码:只有127个字符被编码到计算机,英文字母大小写、数字、一些符号;
Unicode编码:把所有语言都统一到一套编码中;

两者区别

ASCII编码是1个字节,Unicode编码是2个字节
问题:文本全部英文,Unicode编码比ASCII编码多一倍空间,在存储上不划算。
解决:出现UTF-8编码
image

计算机系统通用的字符编码工作方式

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输时,转为UTF-8编码。
用记事本编辑时,从文件读取的UTF-8字符被转换为Unicode字符存到内存里,编辑完成后,保存时再把Unicode转换为UTF-8保存到文件。
示意图如下:
image

浏览网页时,服务器会把动态生成的Unicode内容转换成UTF-8再传输到浏览器。
示意图如下:
image

python的字符串

单个字符编码,使用ord()函数获取字符的整数表示,chr()函数把编码转换为对应字符

>>>ord('A')
65
>>>chr(66)
'B'

python对于bytes类型的数据用带b前缀的单引号或双引号表示

x = b'ABC'

注意

ABCb'ABC' 前者是str,后者虽然内容显示和前者一致,但bytes的每个字符只占用一个字节。

已Unicode表示的str通过encode()方法可以编码为指定的bytes

>>>'ABC'.encode('ascii')
b
posted on 2021-04-25 20:44  paomianzhong  阅读(68)  评论(0)    收藏  举报