python的解码和编码

自己之前的文档

编码演变史:
ASCII编码(英文,无中文)——》中文GB2312,日文 shift-JIS 等——》unicode统一编码(不可变长,针对所有语言)——》utf-8(针对所有语言,长度可变)

计算机系统中字符工作方式:
内存:unicode编码
磁盘/传输:utf-8编码

python中:
内存中unicode编码
python2文件:ascii编码 ,python3文件:utf-8

解码与编码:
decode解码:其他编码/bytes(磁盘,传输)——》Unicode/str(内存)
encode编码:Unicode/str(内存)——》其他编码/bytes(磁盘,传输)

chardet 检查编码

1.安装

pip install chardet

2.使用

>>> chardet.detect(b'Hello, world!')
{'encoding': 'ascii', 'confidence': 1.0, 'language': ''}

https://www.liaoxuefeng.com/wiki/1016959663602400/1183255880134144

相关问题
https://www.cnblogs.com/yoyoketang/p/8058873.html


编码演变史:
ASCII编码(英文)——》中文GB2312,日文 shift-JIS 等——》unicode统一编码(不可变长,针对所有语言)——》utf-8(针对所有语言,长度可变)

python内存: unicode
磁盘/传输:2进制(bytes)

总结:
这两个方法都是以unicode为中间编码,decode(‘utf-8’)把utf-8的二进制数据转化为uncode编码的字符串(内存),encode(’utf-8‘)把unicode的字符串(内存)转为utf-8的二进制?

编码encode():str——》bytes
解码decode():bytes——》str

bytest是python3中才有的类型,原始的字节形式(2进制,实质上就是机器语言01的表现形式),非单位