6

ASCII 和扩展 ASCII 固有的困难是什么? Unicode 如何克服这些困难?

有人可以解释一下 unicode 兼容性吗?

与 Unicode 相关的术语,如平面、基本多语言平面 (BMP)、补充多语言平面 (SMP)、补充表意平面 (SIP)、补充特殊平面 (SSP) 和私人使用平面 (PUP) 是什么意思。

我发现所有这些词都很混乱

4

1 回答 1

11

ASCII

ASCII或多或少是有史以来第一个字符编码。在一个字节非常昂贵且 1MHz 非常快的时代,只有那些出现在美国古代打字机上的字符(以及现在普通的美国国际键盘上)才被 ASCII 字符编码的字符集覆盖。这包括完整的拉丁字母(AZ,小写和大写)、数字(0-9)、词汇控制字符(空格、点、逗号、冒号等)和一些特殊字符(at 符号、尖号、美元符号等)。所有这些字符都填满了 7 位空间,一个字节提供的空间的一半,总共 128 个字符。

扩展 ASCII 和 ISO 8859

后来字节的剩余位用于扩展 ASCII,它为总共 255 个字符提供空间。剩余的大部分空间由特殊字符使用,例如变音字符和画线字符。但是因为每个人都以自己的方式使用剩余的房间(IBM、Commodore、大学、组织等),所以它是不可互换的。最初使用编码 X 编码的字符在使用不同编码 Y 解码时将显示为Mojibake 。后来 ISO 提出了 8 位 ASCII 扩展的标准字符编码定义,从而产生了已知的ISO 8859基于 ASCII 顶部的字符编码标准,例如 ISO 8859-1,因此它们之间的互换性更好。

统一码

对于使用拉丁字母的语言来说,8 位可能就足够了,但对于世界上其余的非拉丁语言,如中文、日语、希伯来语、西里尔文、梵文、阿拉伯语等,肯定是不够的,更不用说包括它们只有 8 位。他们开发了自己的不可互换的非 ISO 字符编码,例如国标、BIG5、JIS、KOI、MIK、TSCII 等。最后建立了一个基于 ISO 8859-1 的新字符编码标准,以涵盖世界上使用的任何字符,以便它在任何地方都可以互换Unicode。它为超过一百万个字符提供了空间,目前其中大约 10% 已被填充。UTF- 8字符编码基于 Unicode。

Unicode 平面

Unicode 字符分为十七个平面,每个平面提供 65536 个字符(16 位)的空间。

  • 平面0:基本多语言平面(BMP),它包含了世界上所有现代语言的字符。
  • 平面 1:补充多语言平面 (SMP),它包含历史语言/脚本以及多语言音乐和数学符号。
  • 平面2:补充表意平面(SIP),它包含“特殊”的CJK(中文/日文/韩文)字符,其中有很多,但在现代写作中很少使用。BMP 中已经存在“正常”的 CJK 字符。
  • 平面 3-13:未使用
  • Plane 14:Supplementary Special Plane (SSP),目前它只包含一些标签字符和字形变化选择器。标签字符目前已弃用,将来可能会被删除。字形变体选择器将用作一种元数据,您可以将其添加到现有字符中,这反过来可以指导读者为字符赋予略微不同的字形。
  • 平面 15-16:私人使用平面 (PUP),它为(主要)组织或用户倡议在标准中包含他们自己的特殊字符或符号提供了空间,以便它在任何地方都可以互换。例如表情符号(日式表情/表情)。

通常,您只会对 BMP 感兴趣,并在整个应用程序中使用 UTF-8 编码作为标准字符编码。

于 2010-08-26T12:03:24.060 回答