我参加了一场关于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没有定义控制码。Unicode图表U+0000..U+007F和U+0080..U+00FF表明,在位置U+0000..U+001F和U+007F中找到的C0控制码来自ISO/IEC 6429:1992,而在位置U+0080..U+9F中找到的C1控制码同样如此。维基百科关于C0和C1控制码的文章表明标准是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 Latin 1)字符都与ASCII兼容,并且在一个字节中与UTF-8兼容。带有连字号和变音符号的字符使用多字节Unicode UTF-8表示,并使用Unicode 兼容性代码点。
所有UTF-8单字节字符都包含在ASCII中。
UTF-8还包含多字节序列,其中一些是可排序等价物 - 组成等价物 - 这些等价物由兼容性代码点表示,而其他字符集除了ASCII和ISO Latin 1之外的所有字符集则表示为某些字符。
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
byte
和(宽)char
之间进行强制转换。 - dan04