最早没有使用的是ASCII,用7位表示128个字符:大小写字母、标点、控制符号,这对早期的操作系统是完全足够的,但是随着各国语言的加入这些字符就远远不够了。
最简单的方式就是增加位数,Unicode顺应而出。我们可以将一个符文序列表示为一个int32序列,这种编码方式叫UTF-32,这种方式比较统一,但是大部分数据使用的ACSII就够了这样就很浪费存储空间。
更进一步采用变长字符表示这些字符,这就是UTF-8,基本思路就是使用额外的字段对解析方式做了区分。
0xxxxxxx (ASCII) 110xxxxx 10xxxxxx 128-2047 (values <128 unused) 1110xxxx 10xxxxxx 10xxxxxx 2048-65535 (values <2048 unused) 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 65536-0x10ffff (other values unused)