百科详情

扩展ascii

发布时间:2023-01-31 03:23

由于标准 ASCII 字符集字符数目有限,无法满足要求。为此,国际标准化组织又制定了 ISO2022 标准,它规定了在保持与 ISO646 兼容的前提下将 ASCII 字符集扩充为 8 位代码的统一方法。 ISO 陆续制定了一批适用于不同地区的扩充 ASCII 字符集,每种扩充 ASCII 字符集分别可以扩充 128 个字符,这些扩充字符的编码均为高位为 1 的 8 位代码,称为扩展 ASCII 码。扩展的 ASCII 字符满足了对更多字符的需求。扩展的 ASCII 包含 ASCII 中已有的 128 个字符,又增加了 128 个字符,总共是 256 个。

1IBM扩展字元集

nullnull  最初的IBM扩展字元集包括某些带重音的字元和一个小写希腊字母表(在数学符号中非常有用),还包括一些块型和线状图形字元。附加的字元也被添加到ASCII控制字元的编码位置,这是因为大多数控制字元都不是拿来显示用的。  该IBM扩展字元集被烧进无数显示卡和印表机的ROM中,并被许多应用程式用于修饰其文字模式的显示方式。不过,该字元集并没有为所有使用拉丁字母表的西欧语言提供足够多的带重音字元,而且也不适用于Windows。Windows不需要图形字元,因为它有一个完全图形化的系统。

2ANSI字元集

  在Windows 1.0(1985年11月发行)中,Microsoft没有完全放弃IBM扩展字元集,但它已退居第二重要位置。因为遵循了ANSI草案和ISO标准,纯Windows字元集被称作「ANSI字元集」。 ANSI草案和ISO标准最终成为ANSI/ISO 8859-1-1987,即「American National Standard for Information Processing-8-Bit Single-Byte Coded Graphic Character Sets-Part 1: Latin Alphabet No 1」,通常也简写为「Latin 1」。  在Windows 1.0的《Programmer's Reference》中印出了ANSI字元集的最初版本。  

0- 1- 2- 3- 4- 5- 6- 7- 8- 9- A- B- C- D- E- F-  

 -0 * * 0 @ P ` p * * ° À Ð à ð  

 -1 * * ! 1 A Q a q * * ¡ ± Á Ñ á ñ  

 -2 * * " 2 B R b r * * ¢ ² Â ò â ò  

 -3 * * # 3 C S c s * * £ ³ Ã ó ã ó  

 -4 * * $ 4 D T d t * * ¤ ´ Ä ô ä ô  

 -5 * * % 5 E U e u * * ¥ µ Å õ å õ   

   -6 * * & 6 F V f v * * ¦ ¶ Æ ö æ ö  

 -7 * * ' 7 G W g w * * § · Ç * ç *   

  -8 * * ( 8 H * h * * * ¨ ¸ È ø è ø   

 -9 * * ) 9 I Y I y * * © ¹ É Ù é ù   

 -A * * * : J Z j z * * ª º Ê Ú ê ú   

 -B * * + ; K [ k { * * « » Ë Û ë û

 -C * * , < L \ l | * * ¬ ¼ Ì Ü ì ü

 -D * * - = M ] m } * * ­ ½ Í Ý í ý

 -E * * . > N ^ n ~ * * ® ¾ Î Þ î þ

 -F * * / ? * _ o DEL * * ¯ ¿ Ï ß ï ÿ  

  * - not applicable   

nullnull 空方框表示该位置未定义字元。这与ANSI/ISO 8859-1的最终定义一致。ANSI/ISO 8859-1仅显示了图形字元,而没有控制字元,因此没有定义DEL。此外,代码0xA0定义为一个非断开的空格(这意味著在编排格式时,该字元不用于断开一行),代码0xAD是一个软连字元(表示除非在行尾断开单词时使用,否则不显示)。此外,ANSI/ISO 8859-1将代码0xD7定义为乘号(*),0xF7为除号(/)。Windows中的某些字体也定义了从0x80到0x9F的某些字元,但这些不是ANSI/ISO 8859-1标准的一部分。

3内码表

  MS-DOS 3.3(1987年4月发行)向IBM PC用户引进了内码表(code page)的概念,Windows也使用此概念。内码表定义了字元的映射代码。最初的IBM字元集被称作内码表437,或者「MS-DOS Latin US)。内码表850就是「MS-DOS Latin 1」,它用附加的带重音字母代替了一些线形字元。其他内码表被其他语言定义。最低的128个代码总是相同的;较高的128个代码取决於定义内码表的语言。  在MS-DOS中,如果用户为PC的键盘、显示卡和印表机指定了一个内码表,然後在PC上创建、编辑和列印文件,一切都很正常,每件事都会保持一致。然而,如果用户试图与使用不同内码表的用户交换档案,或者在机器上改变内码表,就会产生问题。字元码与错误的字元相关联。应用程式能够将内码表资讯与文件一起保存来试图减少问题的产生,但该策略包括了某些在内码表间转换的工作。  虽然内码表最初仅提供了不包括带重音符号字母的附加拉丁字元集,但最终内码表的较高的128个字元还是包括了完整的非拉丁字母,例如希伯来语、希腊语和斯拉夫语。自然,如此多样会导致内码表变得混乱;如果少数带重音的字母未正确显示,那么整个文字便会混乱不堪而不可阅读。

4内码表的扩展

  内码表的扩展正是基於所有这些原因,但是还不够。斯拉夫语的MS-DOS内码表855与斯拉夫语的Windows内码表1251以及斯拉夫语的Macintosh内码表10007不同。每个环境下的内码表都是对该环境所作的标准字元集修正。IBM OS/2也支援多种EBCDIC内码表。

5ASCII和扩展ASCII之间的区别

 

ASCII是分配在十进制数 0 到 127 之间(十六进制 00 到 79 之间)的字符。

扩展ASCII就是指分配在十进制数 128 到 255 之间(十六进制 80 到 FF 之间)的字符。

免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
网站也是有底线的