字符集(相当于接口)
-
字库表
包含所有的字符库。 -
码点code ponit
标识字库表中的每个字符的位置。(码点是不能直接使用的,还需字符集编码的实现)。 -
例如
- ASCII字符集
- Unicode字符集
字符编码(相当于实现类)
定义了字符集的码点的规则。
-
ASCII编码(ASCII字符集的一种实现)
一个字节,包含8bit,共256种。0~127表示默认字符,128~255是扩展字符。 -
Unicode编码(unicode字符集的一种实现)
一个英文等于两个字节,一个中文(含繁体)等于两个字节。 兼容ASCII编码,英文前一字节用00000000填充。 -
utf-8编码(unicode字符集的一种实现)
- 是一个可变长度的默认为8bit=1byte的码点的存储方式。
- 单字节的字符,字节的第一位设为0,对于英语文本,UTF-8码只占用一个字节,和ASCII码完全相同;
- n个字节的字符(n>1),第一个字节的前n位设为1,第n+1位设为0,后面字节的前两位都设为10,这n个字节的其余空位填充该字符unicode码,高位用0补足。
1字节 0xxxxxxx 2字节 110xxxxx 10xxxxxx 3字节 1110xxxx 10xxxxxx 10xxxxxx 4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 。复制代码
一种字符集的可能对应仅一种或多种的字符编码实现。
unicode字符集:
- utf-8 编码
- utf-16 编码
- utf-32 编码
- ...
GBK2321字符集:
- GBK2321编码