计算机字符编码
学习计算机的你对“ASCII码”,“UTF-8”这类词眼一定并不陌生。我们知道它们是给计算机的字符做编码的表,它们有什么联系?
ASCII字符集共128个字符(0~127)
随着计算机的普及,各国开始制作自家的编码表
我国也不例外,1981年5月1日,发布“GB(国标)2312字符集”,共7445个字符。欸,很显然,一个byte不够用了,那就两个byte表示一个汉字吧
每个国家都搞一张表,这意味着在互联网上,你想看懂其他国家在说什么,还得下载他们的编码表解析一下,否则看到的就是乱码。
于是,国际组织提议,全世界共用一张表,把各国的字符都容纳进来。这张表叫做“Unicode编码表(字符集)”。其中,汉字在4E00-9FFF区间
Unicode只负责给字符编码,不负责具体怎么存储
具体的存储策略:
- UTF-8:使用可变长度字节来存储Unicode字符
- UTF-16:使用一个或两个未分配的16位代码单元的序列对Unicode代码点进行编码
- UTF-32:将每个Unicode代码点表示为相同值的32位整数
最常用的UTF-8中:
- 字母占1个字节
- 中文占3个字节,不常用中文字符占4个