# 1.ASCLL

ASCLL-维基百科

众所周知,电脑是在美国发展起来的。而电脑内部的所有数据都是二进制。所以美国人在使用电脑输入信息的时,他们设立了一张表,这张表上有数字、大小写英文字符、各种键盘符号等等。一共是128个。

这张表被称作 ASCLLAmerican Standard Code for Information Interchange(美国信息交换标准代码)。

在美国人的日常使用,这 128 个字符已经能够满足需要。

但随着互联网的发展,越来越多的国家/地区步入互联网的时代。这样他们也需要计算机能够标记他们的文字和语言等等,但显然 ASCLL 字符集不能满足需要。

于是这些国家/地区根据自己的需求制定了自己的字符集,譬如中国大陆制定了 GBK,而台湾地区则制定了 Big5

# 2.GBK与Big5

GBK-维基百科

Big5-维基百科

看起来,每个国家/地区制定自己的字符集,似乎已经满足了各自的需求。

但这种形式的一个弊端就是乱码问题

因为同一个编码在不同的字符集下对应的字符是不同的

我们常见的乱码神兽“锟斤拷”就是字符集的解析不同所导致的。

譬如中国大陆发送一封邮件到台湾,台湾地区打开时就会出现乱码,除非台湾打开时指定字符集为 GBK

# 3.Unicode

Unicode-官方网站

Unicode-维基百科

Unicode 将编码空间分成 17 个平面,以 016 编号。

0 平面(或者说基本多文种平面)中的码点,都可以用一个 UTF-16 单位来编码,或者以 UTF-8 来编码的话,会使用一、二或三个字节。而第 116 平面(或称辅助平面)中的码点,UTF-16 会以代理对的方式来使用,而 UTF-8 则会编码成 4 个字节。

在每个平面中,会先将相关的字符集结为区段的形式。虽然区段可以是任意大小,但会以 16 个码点的倍数,且通常是 128 个码点的倍数。而一份文稿中使用到的区段,可能会散布在多个区段中。

Last Updated: 3/19/2022, 10:32:59 PM