“高ASCII”字符的适当技术术语是什么?

8
什么是技术上正确的称呼“高ASCII”或“扩展ASCII”字符的方式?我不仅指128-255范围内的字符,而是超出0-127范围的任何字符。
通常它们被称为变音符号、重音字母,有时随意地称为“国际”或非英语字符,但这些名称要么不精确,要么只涵盖可能字符的子集。
对于程序员来说,什么是正确、准确的术语,并且在向非技术人员讲解时最好使用哪个英语术语?

1
我试图简洁明了,但或许我应该解释一下为什么我提出这个问题。我是一名翻译员,我的工作是软件本地化。经常(仍然!)我会遇到只有我的语言中的那些“国家”、“扩展”字符在显示时出现乱码的错误,通常是因为某个时候应用了错误的代码页。因此,我需要一个术语来指代这些特定的字符,以便我不必总是使用描述性的句子。我的受众是程序员、工程师和经理,他们的母语并不总是英语。 - Marek Jedliński
8个回答

19

“非 ASCII 字符”


1
似乎否定定义是我们能做的最好的。一旦我们添加了“Unicode”,该术语就不适用于非Unicode环境等。我喜欢sgm提出的“trans-ascii”的想法,但是当跨语言交流时,新的词汇不太可行。 - Marek Jedliński

2

ASCII字符代码高于127未定义。许多不同的设备和软件供应商为值128-255开发了自己的字符集。一些选择绘图符号,一些选择重音字符,其他则选择其他字符。

Unicode是尝试制作一个包括大多数语言中使用的字符的通用字符代码集。这不仅包括传统的西方字母表,还包括西里尔文、阿拉伯文、希腊文,甚至包括来自中文、日文和韩文的大量字符,以及许多现代和古代语言的其他字符。

有几种Unicode的实现方式。其中最流行的之一是UTF-8。其主要原因是它与ASCII向后兼容,字符代码0到127对于ASCII和UTF-8是相同的。

这意味着更好地说,ASCII是UTF-8的子集。字符代码128及以上不属于ASCII。它们可以是UTF-8(或其他Unicode),也可以是硬件或软件供应商的自定义实现。


5
UTF并非Unicode的"实现",它们是将Unicode文本编码成字节串的方式。Unicode文本被表示为数字序列(不是 intlong,而是数字),UTF是将每个数字转换成一个或多个字节序列的方法。 - yfeldblum
Jim,谢谢你,但我更或多或少知道那些是什么 :) 我只是在寻找一个精确的名称。 - Marek Jedliński

1
你可以创造一个类似于“trans-ASCII”,“supra-ASCII”,“ultra-ASCII”等术语。实际上,“meta-ASCII”会更好,因为它暗示了元位。

1
我喜欢“trans-ascii”,我认为它正确地表达了这个概念,但我主要是在寻找一个好的术语来传达这个概念。使用自创的术语可能无法做到这一点 :) - Marek Jedliński

0

一个不表示ASCII字符的位序列并不一定是Unicode字符。

取决于您使用的字符编码,它可以是以下任一内容:

  • 无效的位序列
  • Unicode字符
  • ISO-8859-x字符
  • Microsoft 1252字符
  • 其他某种字符编码下的字符
  • 错误、二进制数据等

适用于所有这些情况的唯一定义是:

  • 不是ASCII字符

严谨地讲,即使“非ASCII字符”也不完全符合所有这些情况,因为有时候在此范围之外的位序列可能只是无效的二进制位序列,根本不是字符。


0
“Extended ASCII”是我会使用的术语,意思是“超出原始0-127个字符”。
Unicode是一组可能的扩展ASCII字符集,非常非常大。
UTF-8是表示Unicode字符的方式,与原始ASCII向后兼容。

2
我的想法是,“扩展ASCII”只会指128-255之间的字符。在这个范围之外无法表示的任何字符都不再是ASCII了 :) - Marek Jedliński
2
请注意(来自维基百科),“扩展ASCII”的使用已经受到批评,因为它可能被误解为ASCII标准的扩展。 - thomasrutter
@thomasrutter;如果你要在编辑中大幅修改我的答案,请直接发布另一个答案,或者至少在这里留下评论? - Dean J
哎呀,我只是想帮忙而已。我已经回滚了所有更改。 - thomasrutter

0

我从一个在线资源(很酷的网站)中选取了一些文字,因为我认为它们对我的写作和回答非常有用和适当。

最初只包括大写字母和数字,但在1967年添加了小写字母和一些控制字符,形成了所谓的US-ASCII,即字符0到127。 因此,这个仅包含128个字符的集合在1967年被发布为标准,包含了所有你需要用英语写作的内容。

1981年,IBM开发了8位ASCII码的扩展,称为“代码页437”,在这个版本中,一些过时的控制字符被替换为图形字符。还添加了128个字符,包括新的符号、标志、图形和拉丁字母,以及撰写其他语言文本所需的所有标点符号和字符,例如西班牙语。 这样就添加了ASCII字符从128到255。

IBM在其型号5150的硬件中包括了对这个代码页的支持,该型号被认为是第一台个人电脑,“IBM-PC”。 该型号的操作系统“MS-DOS”也使用了这个扩展的ASCII码。


-1

非ASCII Unicode字符。


1
这是不正确的。Unicode与ASCII没有任何关系,除了对于前127个代码点是向后兼容的。 - Dervin Thunk
这就是重点。所有没有ASCII等效字符的Unicode字符。 - Amok
2
@Dervin:就像大于127的值与ASCII无关。 - Joachim Sauer
ASCII范围之外的字符不是Unicode字符。它是ASCII范围之外的字符。根据所使用的字符编码,它可能是:无效的位序列;Unicode字符、ISO-8859-x字符、Microsoft 1252字符或其他字符编码中的字符。 - thomasrutter

-1
如果你说“高ASCII”,那么你的字符范围就在128-255之间。 ASCII本身被定义为一种单字节(实际上是7位)字符表示法;使用高位来允许非英语字符的出现是后来发生的事情,并产生了定义特定值所代表的特定字符的代码页。任何多字节(大于255的十进制值)都不是ASCII。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接