字符表示
使用字符编号对照表,即收录很多字符,然后给他们一一编号。
字符集促进了字符与二进制的合作
ASCII字符集(1967年)只收录了128个字符,扩展字符集也就只有256个
英文字符、阿拉伯数字、西文符、控制字符
GB2312(1980年)添加了简体中文、拉丁字母、日文假名
BIG5(1984年) 添加了繁体字,但是依旧有很多字符没有被收录
GB13000.1(1993年) 添加了中日韩
GBK(1995年) 不支持韩文
GB18030(2000) 更多兼容
与其不断退出更多字符的字符集,莫不如本着全球化统一标准的目的,制作一个通用字符集。这个字符集就是Unicode
Unicode(1990-1994)实现了跨区语言跨平台的文本转换与处理
如何划分字符边界
- 直接照搬Unicode字符集进行拼凑,显然行不通,无法区分字符边界
定长编码
不管编号多大多小,统一按最长的来,位数不够高位补零。
虽然字符边界解决了,但是有些浪费内存。而且字符集收录的越多,字符跨度越大,定长编码造成的浪费就越显著
变长编码(UTF-8)
Go 语言默认的编码方式
小编号少占字节