ISO 8859
ISO8859 | |
---|---|
术语名称 | ISO8859 |
英语名称 | ISO8859 |
ISO/IEC 8859 是完全的跨地区兼容 ASCII 的字符编码标准,是 8 比特的字符编码标准。与其前身的 ISO 646 将 7 比特划分为不变区并变化部分字符不同, ISO 8859 中与 ASCII 重叠的部分(最高位为 0 ,即 0~127)中字符均不允许变化,而使用其他部分(最高位为 1 ,即 128~255)编码其他字符。
ISO 8859 标准分为 15 个标准,分别对应一套不同编码,且有通用别名,通常则使用序号或别名进行标记。如 ISO 8859-1 或 Latin-1 、 ISO 8859-2 或 Latin-2 等。
初版于 1987 年,是 ISO 与 IEC 的标准。
ISO 8859 取代了 ISO 646 ,后续被 ISO 10646 取代。
具体编码名称
ISO 8859[1][2] | ||
---|---|---|
编码名称 | 常用别名 | 说明 |
ISO 8859-1 | Latin-1 | 西欧语言 |
ISO 8859-2 | Latin-2 | 中欧语言 |
ISO 8859-3 | Latin-3 | 南欧语言 |
ISO 8859-4 | Latin-4 | 北欧语言 |
ISO 8859-5 | Cyrillic 或 Latin/Cyrillic | 斯拉夫语言 |
ISO 8859-6 | Arabic 或 Latin/Arabic | 阿拉伯语 |
ISO 8859-7 | Greek 或 Latin/Greek | 希腊语 |
ISO 8859-8 | Hebrew 或 Latin/Hebrew | 希伯来语 |
ISO 8859-9 | Latin-5 或 Turkish | 土耳其语 |
ISO 8859-10 | Latin-6 或 Nordic | 北日耳曼语支 |
ISO 8859-11 | Thai | 泰语 |
ISO 8859-13 | Latin-7 或 Baltic Rim | 波罗的语族 |
ISO 8859-14 | Latin-8 或 Celtic | 凯尔特语族 |
ISO 8859-15 | Latin-9 | 西欧语言(ISO 8859-1 的调整版) |
ISO 8859-16 | Latin-10 | 东南欧语言 |
编码特征
最高位为 0 的部分与 ASCII 编码完全相同。其中 00H 到 1FH 是控制字符,后续 20H 到 7EH 是可打印字符,而后续 7FH 是控制字符。
为兼容一些 ASCII 处理逻辑, ISO 8859 系列编码中,对位权为 [math]\displaystyle{ 2^5 }[/math] 和 [math]\displaystyle{ 2^6 }[/math] 的两位均为 0 的编码都没有实际分配字符。换句话说,把 7FH 到 9FH 都保留,实际通过 ISO 6429 或 ISO 6630 等将其分配具体的控制字符。
对剩余的打印字符部分,字符安排在编码之间没有太大的一致性。对几种拉丁字母, C0H 到 DFH 和 E0H 到 FFH 和 ASCII 部分对应的 40H~5FH 与 60H~7EH 一样,分配给各字符集中需要的不属于 ASCII 的大写字母和小写字母,且大小写间保持对 20H 取反可以互相得到,而 A0H~B0H 分配给多出来的字母(如果有,以 10H 取反对应分配大小写)或标点符号。但是对于其他字母体系,由于需要包括各体系中的标准和变体字母,基本上都是把剩余部分全部分配给普通字母。
但是可能是由于 ISO 8859 的年代已经不需要保留全 1 字符给打孔纸带的擦除含义了, FFH 的位置并不是保留为擦除字符 EO 而是分配给了普通的打印字符。
使用
ISO 8859 尽管在规范上被 ISO 10646 取代,但是仍然在实际中被广泛使用。常见的 Windows 代码页中的一部分仍然是 ISO 8859 的遗留,只是名字被更换为代码页的编码。
很多时候,如果多字节编码不能正常处理,其乱码仍然是 ISO 8859-1 / Latin-1 的形式。主要是经常出现多字节编码使用自动编码探测时失败,被误用 ISO 8859-1 解析。
常见字符编码 | |
---|---|
早期编码 | 电报码、 BCD 、ASCII (ISO 646) |
ISO 8859 | ISO 8859-1 、 ISO 8859-2 、…… |
各国国家标准及代码页 | GB 2312 、 GBK 、 GB 18030 |
Unicode / ISO 10646 | UTF-7 、 UTF-8、 UTF-16 、 UTF-32 |