7

我一直在参加一个关于 XML 的讲座,其中写着“ISO-8859-1 是一种 Unicode 格式”。这听起来对我来说是错误的,但是当我研究它时,我很难准确地理解 Unicode 是什么。

你能把 ISO-8859-1 称为 Unicode 格式吗?您实际上可以称之为 Unicode 什么?

4

5 回答 5

14

ISO 8859-1 不是 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+007FU+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 控制。

于 2012-10-09T07:36:27.967 回答
11

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。

在此处输入图像描述

于 2015-12-07T03:08:32.480 回答
7

不,ISO 8859-1 不是 Unicode 字符集,仅仅是因为 ISO 8859-1 没有为所有 Unicode 字符提供编码,只是其中的一小部分。“字符集”这个词有时使用松散(因此通常最好避免使用),但作为一个技术术语,它表示字符编码。

放宽定义以使“Unicode 字符集”意味着涵盖部分 Unicode 的编码将毫无意义。那么每个编码都是一个“Unicode 字符集”。

于 2012-10-09T10:02:37.117 回答
2

不可以。ISO/IEC 8859-1 早于 Unicode。例如,您不会在其中找到 €。Unicode 在某种程度上与 ISO 8859-1 兼容。对于 Unicode 中的字符编码,请查看 UCS / UTF8 / UTF16。

如果您查看代码格式,您会有类似的东西

  • 抽象字母 - 您正在使用的字母
  • 代码表 - 以某种形式输入字母(如字母顺序)
  • 代码格式——说出代码表中哪个位置是哪个字母,(即UTF8或UTF16编码)
  • 代码模式 - 如果您使用更多词来访问代码位置,它们的顺序是什么?(UTF16 中的 Big Endian、Little Endian)[转向指令的字符编码(例如 XML 中的 <)]
于 2012-10-09T07:31:21.087 回答
1

这取决于您如何定义“Unicode 格式”。

我想大多数人会认为它意味着一种能够表示 Unicode 范围内的任何代码点(U+0000 - U+10FFFF)的编码。

在这种情况下,不,ISO 8859-1 不是 Unicode 格式。

然而,其他一些定义可能是“作为 Unicode 字符集子集的字符集”或“可以被认为包含 Unicode 数据(不一定是任意 Unicode 数据)的编码”。ISO 8859-1 符合这两个定义。

Unicode 有很多东西。它包含一个字符集,其中“字符”被分配了代码点值。它定义字符的属性并提供字符及其属性的数据库。它定义了许多算法,用于对 Unicode 文本数据进行各种处理,例如比较字符串的方法、将字符串划分为字素簇、单词等。它定义了一些特殊的编码,可以对任何 Unicode 代码点进行编码并具有一些其他有用的属性。它定义了 Unicode 代码点和遗留字符集的代码点之间的映射。

在这里您可以找到更完整的答案:Unicode.org

于 2012-10-09T19:30:24.260 回答