硬盘上存储的字符都是二进制形式的。从内存写到硬盘采用哪种编码方式,从硬盘读到内存就用哪种编码方式。内存中的字符可以转为unicode编码方式显示,因为所有的系统、编程语言都默认支持unicode,且unicode包含了跟全球所有国家编码的映射关系。python3中的str类型就是unicode编码方式的。
编码 | 占用字节 | 说明 | 备注 |
---|---|---|---|
ASCII | 1 | 只支持英文 | 1个字节8比特,能表示的最大的整数就是255。0 - 255被用来表示大小写英文字母、数字和一些符号 |
GB2312 | 2 | 支持6700+汉字 | 简体汉字 |
GBK | 2 | GB2312的升级版,支持21000+汉字 | 简体加繁体汉字 |
BIG5 | 2 | 中国台湾、日本地区繁体汉字 | |
Unicode | 2-4 | 万国码,涵盖了全球所有的文字和二进制的对应关系,已收录136690个字符 | Unicode解决了字符和二进制的对应关系,但使用unicode表示一个字符时,太浪费空间 |
UTF-8 | 1-4 | 优先使用1个字符、无法满足则使增加一个字节,最多4个字节。英文占1个字节、欧洲语系占2个、东亚占3个,其它及特殊字符占4个 | UTF(Unicode Transformation Format)解决了Unicode存储和网络传输的问题 |
UTF-16 | 2、4 | 优先使用2个字节,超过则使用4个字节表示 | |
UTF-32 | 4 | 使用4个字节表示所有字符 |