百科知识

探索ascall码对照表,轻松掌握字符编码奥秘

在计算机发展的早期阶段,ASCII 编码标准被广泛应用于字符的表示。由于英语字母表仅包含 26 个字母,加上一些必要的特殊字符和符号,ASCII 编码因此显得相对简单。

下面提供了一个详细的 ASCII 码对照表,其中列出了各个字符及其对应的十进制数值和十六进制数值。

ASCII 码对照表

通过观察上述表格,我们可以得出结论:ASCII 值在十进制数系统中覆盖的范围是从 0 到 127。接下来,让我们具体分析 0 和 127 这两个边界值在 8 位二进制字节中的表现形式。

数字 0 表示为

0 的二进制形式

数字 127 表示为

127 的二进制形式

基于上述二进制表示,我们可以推断出,十进制值 0 到 127 完全可以通过 7 位二进制数来精确表示,而第 8 位则处于未使用状态。

注意事项 从这一点开始,一系列的复杂问题开始浮现。

为了充分利用第 8 位未使用的空间,人们提出了多种方法来扩展 ASCII 编码的范围,使其能够表示从 128 到 255 的十进制值。然而,这种做法导致了不同地区和语言之间的编码冲突。例如,越南语使用十进制值 182 来代表其特有的字母 “ờ”,而印地语则同样使用 182 来表示其字母 “घ”。这种情况下,如果印地语用户发送的电子邮件中含有字母 “घ”,而接收方是越南语用户,那么该字母将会被错误地显示为 “ờ”。显然,这种情况是不可接受的。

为了解决这一难题,Unicode 编码标准应运而生。

Unicode 字符集的设计理念是将世界上每一种语言中的每一个字符都映射到一个独一无二的数字上。这种设计确保了不同语言之间的字符表示不会发生冲突,并且这些映射关系是独立于特定平台的。

这些独一无二的数字在 Unicode 术语中被称为代码点。

接下来,我们将探讨如何引用这些代码点。

使用代码点引用拉丁字符ṍ

U+ 符号在 Unicode 编码中代表字符的代码点,其中 1E4D 是分配给字符 ṍ 的十六进制数值。

英文字母A的 Unicode 代码点表示为 U+0041

在了解了 Unicode 的基本概念以及如何为全球范围内的字符分配唯一的代码点之后,我们还需要解决如何在计算机内存中实际表示这些代码点的问题。这时,字符编码技术发挥了关键作用。在众多编码方案中,UTF-8 编码是最为广泛应用的。

UTF-8 编码是一种灵活的编码方案,它允许使用 1 到 4 个字节来表示 Unicode 代码点。这种可变长度的编码方式使得 UTF-8 能够高效地表示各种字符。

UTF-8 编码中,1 字节编码的标识是第一个比特位为 0。

UTF8 1 字节编码格式

英文字母 A 的 Unicode 代码点为 U+0041,其二进制表示为 1000001。

A 在 UTF-8 编码下的表示为

01000001

红色的 0 位表示该字符使用 1 字节编码,其余位则代表实际的码位。

拉丁字母ñ的 Unicode 代码点为 U+00F1,其二进制值为 11110001。由于这个值超过了 1 字节编码能够表示的最大范围,因此该字符需要使用 UTF-8 2 字节编码来表示。

UTF-8 2 字节编码的标识是通过第一个字节的比特位序列 110 和第二个字节的比特位序列 10 来实现的。

UTF8 2 字节编码格式

Unicode 代码点 U+00F1 的二进制表示是 1111 0001。使用 2 字节编码格式填充这些位,我们得到如下所示的 ñ 的 UTF-8 2 字节编码表示。

填充过程是从映射到第二个字节的最低有效位开始的。

1100001110110001

蓝色的二进制数字 11110001 代表码位 U+00F1 的二进制值,红色的是 2 字节编码的标识符。黑色零用于填充字节中的空位。

具有代码点U+1E4D的拉丁字符ṍ 需要使用 3 字节编码来表示,因为它的值超出了 2 字节编码的范围。

UTF-8 3 字节编码的标识是通过第一个字节的比特位序列 1110 以及第二个和第三个字节的比特位序列 10 来实现的。

UTF8 3 字节编码格式

ṍ 的十六进制代码点 0x1E4D,其二进制值为 1111001001101。将这些位填充到上述编码格式中,我们得到如下所示的 ṍ 的 UTF-8 3 字节编码表示。

填充过程同样是从映射到第三个字节的最低有效位开始的。

111000011011100110001101

红色位表示 3 字节编码,黑色位是填充位,蓝色位表示代码点。

表情符号的 Unicode 代码点为U+1F62D。由于这个值超过了 3 字节编码的范围,因此需要使用 4 字节编码来表示。

UTF-8 4 字节编码的标识是通过第一个字节的比特位序列 11110 以及随后的第二个、第三个和第四个字节的比特位序列 10 来实现的。

UTF8 4 字节编码格式

U+1F62D 的二进制表示是 11111011000101101。将这些位填充到上述编码格式中,我们得到如下所示的 UTF-8 4 字节编码。

11110000100111111001100010101101

红色位标识 4 字节编码格式,蓝色位是实际码位,黑色位是填充位。

在上文中,我们详细介绍了 UTF-8 编码的几种不同长度的编码方式。接下来,我们将简要介绍 UTF-16 和 UTF-32 编码方式。

UTF-16 编码是一种可变长度的编码方案,它使用 2 个字节或 4 个字节来表示 Unicode 代码点。大多数现代语言中的字符都使用 2 字节来表示。

拉丁字母 ñ 的 Unicode 代码点为U+00F1,其二进制表示为11110001 。其 UTF-16 编码表示为

0000000011110001

上面的表示是在 Big Endian 字节顺序模式下(最高有效位在前)。

UTF-32 编码是一种固定长度的编码方案,它使用 4 个字节来表示所有的 Unicode 代码点。

英文字母 A 的 Unicode 代码点为 U+0041,其二进制表示是1000001。

它以 UTF-32 编码表示,如下所示,

00000000 00000000 00000000 01000001

蓝色位是代码点的二进制表示。上面的表示是在 Big Endian 字节顺序模式下。

综上所述,我们详细探讨了字符集和字符编码的相关内容。