关于编解码
编码/解码本质上是一种映射
字符a
用 ascii 编码则是65,计算机中存储为 00110101。
a
需要解码为 00110101,才能被计算机使用。
编码:真实字符与二进制串的对应关系,真实字符 → 二进制串
解码:二进制串与真实字符的对应关系,二进制串 → 真实字符
如:
UTF-8 --> decode 解码 --> Unicode
Unicode --> encode 编码 --> GBK / UTF-8 等
编码的种类
- ASCII 占 1个字节,只支持英文
- GB2312 占2个字节,支持 6700+ 汉字
- GBK GB2312的升级版,支持 21000+ 汉字,中文2个字节。
- Unicode 2-4 字节, 已经收录 136690 个字符
- UTF-8:使用 1、2、3、4 个字节表示所有字符;
优先使用1个字符、无法满足则使增加一个字节,最多 4个字节。
英文占1个字节、欧洲语系占2个、东亚占 3个,其它及特殊字符占 4个,中文 3个字节。 - UTF-16:使用2、4个字节表示所有字符;
优先使用2个字节,否则使用4个字节表示。
ASCII 以 1字节 8个bit位表示一个字符,首位全是0,表示的字符集明显不够
unicode