ASCII和扩展ASCII固有的困难,以及Unicode兼容性?

ASCII和扩展ASCII固有的困难,以及Unicode兼容性?,unicode,character-encoding,ascii,extended-ascii,Unicode,Character Encoding,Ascii,Extended Ascii,ASCII和扩展ASCII固有的困难是什么?Unicode是如何克服这些困难的 有人能解释一下unicode的兼容性吗 与Unicode类平面、基本多语言平面(BMP)、辅助多语言平面(SMP)、辅助表意平面(SIP)、辅助专用平面(SSP)和专用平面(PUP)相关的术语是什么意思 我发现所有这些词都很令人困惑 是有史以来的第一个字符编码。在一个字节非常昂贵、1MHz非常快的时代,ASCII字符编码的字符集只覆盖了那些古老的字符(以及如今美国国际键盘上的普通字符)。这包括完整的拉丁字母(A-Z,

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

有人能解释一下unicode的兼容性吗

与Unicode类平面、基本多语言平面(BMP)、辅助多语言平面(SMP)、辅助表意平面(SIP)、辅助专用平面(SSP)和专用平面(PUP)相关的术语是什么意思

我发现所有这些词都很令人困惑 是有史以来的第一个字符编码。在一个字节非常昂贵、1MHz非常快的时代,ASCII字符编码的字符集只覆盖了那些古老的字符(以及如今美国国际键盘上的普通字符)。这包括完整的拉丁字母(A-Z,小写和大写形式)、数字(0-9)、词法控制字符(空格、点、逗号、冒号等)和一些特殊字符(at符号、尖符号、美元符号等)。所有这些字符占据了7位的空间,即一个字节提供的空间的一半,总共128个字符

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

统一码 对于使用拉丁字母表的语言来说,8位可能足够了,但对于世界上其余的非拉丁语言,如汉语、日语、希伯来语、西里尔语、梵语、阿拉伯语等,8位肯定不够,更不用说将它们全部包含在8位中了。他们开发了自己的非ISO字符编码,这也是不可互换的,如国标、BIG5、JIS、KOI、MIK、TSCII等。最后,在ISO 8859-1的基础上建立了一个新的字符编码标准,以覆盖世界上使用的任何字符,因此它在任何地方都是可互换的。它为超过100万个字符提供了空间,其中约10%的字符已被填满。字符编码基于Unicode

Unicode平面 Unicode字符分为17种,每种字符可容纳65536个字符(16位)

  • 平面0:,它包含世界上已知的所有现代语言的字符
  • 平面1:,它包含历史语言/脚本以及多语言音乐和数学符号
  • 平面2:,它包含“特殊”的CJK(中文/日文/韩文)字符,其中有很多,但在现代写作中很少使用。BMP中已存在“正常”CJK字符
  • 飞机3-13:未使用
  • 平面14:,因为它只包含一些标记字符和字形变体选择器。标记字符当前已弃用,将来可能会删除。字形变体选择器将用作一种元数据,您可以将其添加到现有字符中,而现有字符又可以指示读取器为字符提供稍微不同的字形
  • 平面15-16:,它为(主要)组织或用户计划提供空间,在标准中包含他们自己的特殊字符或符号,以便在任何地方都可以互换。例如(日式微笑/表情)

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

我觉得最后一行似乎暗示UTF-8只能处理BMP。UTF-8(就此而言,UTF-16和-32)可以对所有的Unicode进行编码。@Thanatos:这不是我想暗示的:)谢谢你的评论,这让其他读者不会有这种感觉。术语“扩展ASCII”只会导致混淆。我建议避免这样做。Unicode当然也是一种扩展的ASCII,尤其是UTF-8格式。EBCDIC是极少数非ASCII扩展的字符编码之一,您可能永远不会遇到它。