# ASCII码表
"""
8bit 1Bytes 可存储256个字符 0-255
只支持英文字符
"""
# GBK码表
"""
英文 8bit 1Bytes 可存储256个字
中文 16bit 2Bytes 可存储65536个字符 0-65535
可存储大部分中文字符 中国人编制
以GBK格式存入硬盘,其他国家无法使用,不建议存储
"""
# Unicode码表
"""
多数字符 16bit 2Bytes [英文多时,2字节占空间,IO延迟长]
个别字符 32/64bit 4/8bytes
存储了万国字符
与原来其他国家自定义的码表有对应关系
计算机系统底层用于将bytes翻译成str的编码表
"""
# UTF-8 unicode transform[转换] format-8
"""
英文字符 8bit 1Bytes
其他字符 24bit 3Bytes
UTF-8不具备翻译功能
所有新文件应该存储为UTF-8格式
python3解释器指定的编码表
"""
"""
程序的运行,是把代码从硬盘读入内存,运行过程中产生的数据,都是存在于内存中的
键盘打字过程:输入人类字符 --> 翻译 --> 存储为二进制数字 --> 翻译 --> 输出人类字符
存储乱码后数据会丢失
文本文件,以什么格式存储的,就以什么格式读取
Python3解释器默认读取文件的编码方式为UTF-8
Python2解释器默认读取文件的编码方式为ASCII
翻译方式 存储格式 是否乱码
UTF-8 UTF-8 任何语言 不乱码
UTF-8 GBK 中文 乱码
GBK UTF-8 中文 乱码
"""
# coding:utf-8
unicode_exa = '你好'
res = unicode_exa.encode('gbk')
# 返回GBK格式的字节数据
print(res, type(res))
# 与老平台对接时使用 老平台计算机只能识别GBK [基本用不到]
gbk_exa = res.decode('gbk')
# 将GBK格式的字节数据,以GBK格式进行解码,返回对应的字符串
print(gbk_exa)
# encode:将Unicode字符[内存中],编码成其他格式的二进制数
# decode:将其他格式的二进制数[硬盘中],解码成Unicode字符
# 具体是什么格式,根据程序员的指定