Anu*_*lia 90 ascii character-encoding
我的老师告诉我ASCII是8位字符编码方案.但它仅定义为0-127个代码,这意味着它可以适合7位.那么不能说ASCII位实际上是7位代码吗?
当说ASCII完全是8位代码时,我们要说什么呢?
zwo*_*wol 78
ASCII确实最初被认为是一个7位代码.这在8位字节无处不在之前就已经完成了,甚至到了20世纪90年代,你也可以找到软件,假设它可以使用每个文本字节的第8位用于它自己的目的("不是8位清理").如今人们认为它是一个8位编码,其中字节0x80到0xFF没有明确的含义,但这是一个retcon.
有许多文本编码使用第8位; 它们可以被分类为ASCII兼容与否,以及固定宽度或可变宽度.ASCII兼容意味着无论上下文如何,具有0x00到0x7F值的单个字节编码与ASCII中相同的字符.如果你可以避免它,你不希望与非ASCII兼容的文本编码有任何关系; 期待ASCII的天真程序倾向于以灾难性的,通常是破坏性的方式误解它们.现在它们已被弃用(例如)HTML5禁止在公共网站上使用它们,但不幸的是UTF-16除外.我不打算再谈论它们了.
固定宽度编码意味着它的含义:所有字符都使用相同的字节数进行编码.要与ASCII兼容,fixed-with编码必须仅使用一个字节对其所有字符进行编码,因此它不能超过256个字符.目前最常见的此类编码是Windows-1252,它是ISO 8859-1的扩展.
目前只有一种值得了解的可变宽度ASCII兼容编码,但它非常重要:UTF-8,它将所有Unicode打包成ASCII兼容编码.如果你能管理它,你真的想要使用它.
作为最后一点,"ASCII"现在采用Unicode的实际定义,而不是其原始标准(ANSI X3.4-1968),因为历史上有几十种ASCII 127字符集的变体 - 例如,某些标点符号可以用重音字母代替,以方便法语文本的传输.现在所有这些变化都是过时的,当人们说"ASCII"时,它们意味着值为0x00到0x7F的字节编码Unicode代码点U + 0000到U + 007F.如果您发现自己编写技术标准,这可能只对您有用.
如果您对ASCII的历史及其之前的编码感兴趣,请从文章"The Character of Character Codes,1874-1968"开始(samizdat copy at http://falsedoor.com/doc/ascii_evolution-of- character-codes.pdf)然后追逐它的引用(其中很多都不能在线获取,即使访问大学图书馆也很难找到,我很遗憾地说).
原始ASCII表以7位编码,因此它有128个字符.
如今,大多数读者/编辑使用"扩展"ASCII表(来自ISO 8859-1),该表以8位编码,享有256个字符(包括Á,Ä,Œ,é,è和其他对欧洲语言有用的字符)作为数学字形和其他符号).
虽然UTF-8使用与基本ASCII表相同的编码(两个代码中的含义0x41均为A),但它不会为"Latin Extended-A"块共享相同的编码.这有时会导致奇怪的角色出现在点菜或皮纳塔等字眼中.