字符集与代码页布局

Character set vs codepage layout

1) 谁能解释一下为什么 ASCII 和 Latin-1 table 一次出现在 字符集 一章中,一次出现在 代码页下布局?如果这两个术语可以互换使用我没问题,但这仍然不一致,还是我遗漏了什么?

2) ASCII 和 Latin-1 是否完全兼容? Latin-1 中似乎没有定义 0x00 到 0x1F,为什么?

字符集是一组概念性书写系统概念,例如大写字母 Z、换行符或自行车符号。这些包括具有重要使用上下文(例如数学)但不是典型字体(字体)变体的排版样式变体。

字符集中的每个代码点都是 "character" 和整数之间映射中的一个元素。

字符编码是一种在字符集中的代码点和字符编码中的一个或多个代码单元序列之间进行转换的算法。代码单元是整数。大于一个字节的整数有一个字节顺序(字节序)。代码单元被序列化为字节序列以用于流式传输或存储。字符编码函数通常同时映射两个步骤:在代码点和字节之间。

许多字符集都有一种字符编码。许多字符编码具有单字节代码单元。这使他们很容易理解代码点、代码单元和字节折叠以及字符集和字符编码折叠的概念。

这都由来已久。术语、重点和标准已经发展。上下文可以作为线索说明其含义。 "Code page" is/was 通常用于识别 ASCII 的特定扩展。在某些原始标准中,仅记录差异或扩展。供应商库通常会填补字符集中的空白,因此可以在 256 个代码点上完整定义它们。在开发Unicode字符集的时候,厂商接受了Unicode和其他字符集之间的transcoding tables。这有效地将一些字符集标准化为 256 个代码点。 (您可以在表格中看到十六进制的 Unicode 代码点。)

ASCII 和 Latin-1(实际上与 ISO 8859-1 相同)在有限的意义上是兼容的: 前 128 个代码点和代码单元值相同。 ISO-8859-1 is the IANA preferred name for this standard when supplemented with the C0 and C1 control codes from ISO/IEC 6429. 没人喜欢那样乱七八糟的。这就是为什么 Unicode 的成员在创建 Unicode 和其他字符集之间的映射时只采用了在该领域使用的字符集。