ISO-8859-1是Unicode字符集吗?

时间:2012-10-09 07:22:37

标签: unicode character-encoding iso-8859-1

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

您可以将ISO-8859-1称为Unicode格式吗?你真的可以称之为Unicode吗?

5 个答案:

答案 0 :(得分:9)

ISO 8859-1不是Unicode

ISO 8859-1也称为Latin-1。它不是直接Unicode格式。

但是,它具有唯一的权限,其代码指向0x00 .. 0xFF一对一映射到Unicode代码点U+0000 .. U+00FF。因此,Unicode的前256个代码点被视为1字节无符号整数,映射到ISO 8859-1。


控制字符

ISO 8859-1未定义控制代码的

Peregring-lk observesU+0000..U+007FU+0080..U+00FF的Unicode图表表明在位置U + 0000..U + 001F和U + 007F中找到的C0控件来自ISO / IEC 6429:1992并且在位置中找到C1控件U + 0080..U + 9F同样如此。维基百科C0 and C1 controls表明该标准是ISO / IEC 2022。请注意,其中三个C1控件没有正式名称。

一般而言,ISO 8859-1代码集的控制代码点被假定为ISO 6429(或2022)的C0和C1控件。

答案 1 :(得分:7)

ISO-8859-1包含UTF-8 Unicode的子集,它与ASCII基本重叠。

所有ASCII都是UTF-8 Unicode。

代码为7f hex的所有ISO 8859-1(ISO Latin 1)字符都是ASCII兼容的,并且UTF-8在一个字节中兼容。带有变音符号的连字和字符使用多字节Unicode UTF-8表示,并使用Unicode 兼容性代码点

所有UTF-8单字节字符都包含在ASCII中。

UTF-8还包含多字节序列,其中一些是可兼容的(即可排序的)等价物 - 组成等价物 - 由兼容性代码点表示的字符,其中一些是表示的字符除了ASCII和ISO Latin 1之外的所有其他字符集。

enter image description here

答案 2 :(得分:5)

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

放宽定义,以便“Unicode charset”意味着覆盖部分Unicode的编码将毫无意义。然后每个编码都是“Unicode字符集”。

答案 3 :(得分:2)

没有。 ISO / IEC 8859-1比Unicode早。例如,您将找不到€。 Unicode在某种程度上与ISO 8859-1兼容。有关Unicode中字符的编码,请查看UCS / UTF8 / UTF16。

如果您查看代码格式,您可以使用

  • 抽象字母 - 您正在使用的字母
  • 代码表 - 以某种形式(如字母顺序)带来字母
  • 代码格式 - 说明代码表中哪个位置是哪个字母(即UTF8或UTF16编码)
  • 代码架构 - 如果您使用更多单词来访问代码位置,它们的顺序是什么? (Big Endian,UTF16中的Little Endian) [转向指令的字符编码(例如<在XML中)]

答案 4 :(得分:1)

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

我认为大多数人会认为它是指能够代表Unicode范围内任何代码点的编码(U + 0000 - U + 10FFFF)。

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

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

Unicode是很多东西。它包含一个字符集,其中“字符”被赋予代码点值。它定义字符的属性,并提供字符及其属性的数据库。它定义了许多使用Unicode文本数据执行各种操作的算法,例如比较字符串的方法,将字符串划分为字形集群,单词等。它定义了一些特殊编码,可以编码任何Unicode代码点并具有一些其他有用的属性。它定义了Unicode代码点和传统字符集的代码点之间的映射。

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