字符串编码
-
我们就要学习如何将我们的文字转成计算机可以识别的文中子
-
如何将数据存放到硬盘中就是我们要学的
【1】字符编码的发展史
-
一家独大
-
ACSII码表
-
大写英文字母 A-Z : 65 -90
-
小写英文字母 a-z : 97-122
-
数字 0 - 9 : 48 - 57
-
-
诸侯割据
-
日本出现了Shift_JIS
-
中国 GBK
-
韩国人Euc-kr
-
-
一统天下
-
大家统一意见,合理开发一个编码表,作为所有国家的标志
-
Unicode : 存在所有语言中的所有字符与数字的一一对应关系,即兼容万国字符
-
美国人--ascii ---> unicode ----> gbk ---> 中文
-
日本人--shift-jis ---> unicode ----> gbk ---> 中文
-
【2】进行编解码(二进制)
-
解码 ---> 将二进制数据转换为字符
data = b'\xe8\x9a\xa9\xe6\xa2\xa6' print(data.decode('utf-8'))#我们用的最多的 print(data.decode('gbk')) print(data.decode('shift-jis')) name = b'dream'#(转为二进制) print(type(name))
-
编码 ---> 将字符转换为二进制数据
name = "解释器" print(name.encode("utf-8"))
【3】UTF-8的诞生(了解即可)
【1】开始的方案
-
如果保存到硬盘的是GBK格式二进制,当初用户输入的字符只能是中文或英文
-
同理如果保存到硬盘的是Shift_JIS格式二进制,当初用户输入的字符只能是日文或英文……
-
多国字符—√—>内存(unicode格式的二进制)——X—>硬盘(GBK格式的二进制)
-
多国字符—√—>内存(unicode格式的二进制)——X—>硬盘(Shift_JIS格式的二进制)
-
多国字符—√—>内存(unicode格式的二进制)——√—>硬盘(???格式的二进制
【2】解决方案(用UTF-8)
-
多国字符—√—>内存(unicode格式的二进制)——√—>硬盘(utf-8格式的二进制)
【3】UTF8不够用
-
颜文字 ---> utf8mb4
【4】 补充
-
随着时代的发展 可能 unicode 就被淘汰了 只剩下 utf8
【4】扩展
-
在Python2.几版本的时候
-
文件开头
-
--*-- utf-8
-