ASCII编码
- 美国信息交换标准代码
原始ASCII码表
- 0-7F
扩展ASCII码表
- 0-FF
- GB2312:两个扩展ASCII码组成一个汉字
- 弊端:每个国家用的格式不同,本机是GB2312可能显示是中文,在他机上就可能会是乱码
Unicode编码
- 0-0x10FFFF
- 把所有符号全部存储,每个符号都是唯一编码
- 问题:Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储
UTF-16
- 以16位无符号整数为单位,注意是16位一个单位,不代表一个符号就只有16位。这个要看字符的unicode编码出于什么范围而定,有可能是2个字节,也有可能是4个字节。现在机器上的unicode编码一般指的就是UTF-16。
- 存储单位是两个字节
- 弊端:一个字符如果只有一个字节,但是UTF-16要存两个字节,增大了存储空间,对于网络传输不够友好
UTF-8
1 | Unicode UTF-8字节流(二进制) |
- 缺点:解析繁琐,中文的话可能不如UTF-16更省空间
BOM(Byte Order Mark)
- 判断文本文件的存储格式
1 | UTF-8 -> EF BB BF |
关于本文
由 GuQing 撰写,采用 CC BY-NC 4.0 许可协议。