我一直在参加一个关于 XML 的讲座,其中写着“ISO-8859-1 是一种 Unicode 格式”。这听起来对我来说是错误的,但是当我研究它时,我很难准确地理解 Unicode 是什么。
你能把 ISO-8859-1 称为 Unicode 格式吗?您实际上可以称之为 Unicode 什么?
我一直在参加一个关于 XML 的讲座,其中写着“ISO-8859-1 是一种 Unicode 格式”。这听起来对我来说是错误的,但是当我研究它时,我很难准确地理解 Unicode 是什么。
你能把 ISO-8859-1 称为 Unicode 格式吗?您实际上可以称之为 Unicode 什么?
ISO 8859-1也称为 Latin-1。它不是直接的Unicode格式。
但是,它确实具有独特的特权,即其代码点 0x00 .. 0xFF 一对一映射到 Unicode 代码点U+0000 .. U+00FF。因此,Unicode 的前 256 个代码点,被视为 1 字节无符号整数,映射到 ISO 8859-1。
Peregring-lk 观察到 ISO 8859-1 没有定义控制代码。U+0000..U+007F和U+0080..U+00FF的 Unicode 图表表明位于 U+0000..U+001F 和 U+007F 位置的 C0 控件来自 ISO/IEC 6429:1992 和同样位于 U+0080..U+9F 位置的 C1 控件。C0 和 C1 控件的 Wikipedia建议该标准改为 ISO/IEC 2022。请注意,其中三个 C1 控件没有正式名称。
一般来说,ISO 8859-1 代码集的控制代码点被假定为来自 ISO 6429(或 2022)的 C0 和 C1 控制。
ISO-8859-1 包含 UTF-8 Unicode 的一个子集,它与 ASCII 基本重叠。
所有 ASCII 都是 UTF-8 Unicode。
代码 7f 十六进制以下的所有 ISO 8859-1(ISO 拉丁语 1)字符在一个字节中都兼容 ASCII 和 UTF-8。带有变音符号的连字和字符使用多字节 Unicode UTF-8 表示,并使用 Unicode兼容性代码点。
所有 UTF-8 单字节字符都包含在 ASCII 中。
UTF-8 还包含多字节序列,其中一些是由兼容性代码点表示的字符的可整理(即可排序)等价物 -组合等价物,其中一些是由除 ASCII 和 ISO 之外的所有其他字符集表示的字符拉丁语 1。
不,ISO 8859-1 不是 Unicode 字符集,仅仅是因为 ISO 8859-1 没有为所有 Unicode 字符提供编码,只是其中的一小部分。“字符集”这个词有时使用松散(因此通常最好避免使用),但作为一个技术术语,它表示字符编码。
放宽定义以使“Unicode 字符集”意味着涵盖部分 Unicode 的编码将毫无意义。那么每个编码都是一个“Unicode 字符集”。
不可以。ISO/IEC 8859-1 早于 Unicode。例如,您不会在其中找到 €。Unicode 在某种程度上与 ISO 8859-1 兼容。对于 Unicode 中的字符编码,请查看 UCS / UTF8 / UTF16。
如果您查看代码格式,您会有类似的东西
这取决于您如何定义“Unicode 格式”。
我想大多数人会认为它意味着一种能够表示 Unicode 范围内的任何代码点(U+0000 - U+10FFFF)的编码。
在这种情况下,不,ISO 8859-1 不是 Unicode 格式。
然而,其他一些定义可能是“作为 Unicode 字符集子集的字符集”或“可以被认为包含 Unicode 数据(不一定是任意 Unicode 数据)的编码”。ISO 8859-1 符合这两个定义。
Unicode 有很多东西。它包含一个字符集,其中“字符”被分配了代码点值。它定义字符的属性并提供字符及其属性的数据库。它定义了许多算法,用于对 Unicode 文本数据进行各种处理,例如比较字符串的方法、将字符串划分为字素簇、单词等。它定义了一些特殊的编码,可以对任何 Unicode 代码点进行编码并具有一些其他有用的属性。它定义了 Unicode 代码点和遗留字符集的代码点之间的映射。
在这里您可以找到更完整的答案:Unicode.org