在早期的计算机时代,ASCII 码被用来表示字符。英语仅有 26 个字母和一些其他特殊字符和符号。
ASCII 码对照表
从表中可以观察到,ASCII 值可以用十进制数系统表示为 0 到 127。接下来,让我们探究 0 和 127 在 8 位字节中的二进制表示。
0 的二进制表示为:
0 的二进制表示
而 127 的二进制表示为:
127 二进制表示
由上述的二进制表示可知,十进制值 0 到 127 可以使用 7 位来表示,而第 8 位是空闲的。
随后,为了更有效地利用剩余的位,人们开始探索不同的编码方法。其中,Unicode 应运而生。
Unicode 字符集将世界各地的字符映唯一的数字上,这些数字与平台无关。这些唯一的数字在 Unicode 中被称为代码点。
例如,引用 Unicode 代码点的方式如下:
使用代码点引用拉丁字符 'A',其 Unicode 表示为 U+0041。
接着,为了在计算机内存中表示这些代码点,字符编码显得尤为重要。这其中,我们熟知的是 UTF-8 编码。
UTF-8 是一种可变大小的编码方案,用来表示内存中的 Unicode 代码点。这意味着根据代码点的大小,它可能使用 1、2、3 或 4 个字节来表示。
具体地,以英文字母 'A' 的 Unicode 代码点 U+0041 为例,其二进制表示是 1000001。在 UTF-8 编码中,这将会被表示为单字节的形式。
而对于那些 Unicode 值超过单字节表示范围的字符,如拉丁字母 'ñ'(U+00F1),则需要使用多字节进行表示。
例如,'ñ' 的 UTF-8 双字节编码表示方式如下:...
具体的 UTF-8 双字节、三字节和四字节编码方式...
还有 UTF-16 和 UTF-32 等其他编码方式。UTF-16 使用 2 或 4 个字节来表示 Unicode 代码点,而 UTF-32 则固定使用 4 个字节。
'ñ' 在 UTF-16 中的表示...
'A' 在 UTF-32 中的表示...
了解了这些字符集和编码后,我们能够更好地处理不同语言和符号的转换与显示问题。