* * « » Ë Û ë û
-C * * , < L \ l | * * ¬ ¼ Ì Ü ì ü
-D * * - = M ] m } * * ½ Í Ý í ý
-E * * . > N ^ n ~ * * ® ¾ Î Þ î þ
-F * * / * _ o DEL * * ¯ ¿ Ï ß ï ÿ
* - not applicable
图2-2 Windows ANSI字元集(基於ANSI/ISO
8859-1) |
空方框表示该位置未定义字元。这与ANSI/ISO 8859-1的最终定义一致。ANSI/ISO
8859-1仅显示了图形字元,而没有控制字元,因此没有定义DEL。此外,代码0xA0定义为一个非断开的空格(这意味著在编排格式时,该字元不用於断开一行),代码0xAD是一个软连字元(表示除非在行尾断开单词时使用,否则不显示)。此外,ANSI/ISO
8859-1将代码0xD7定义为乘号(*),0xF7为除号(/)。Windows中的某些字体也定义了从0x80到0x9F的某些字元,但这些不是ANSI/ISO
8859-1标准的一部分。
MS-DOS
3.3(1987年4月发行)向IBM PC用户引进了内码表(code
page)的概念,Windows也使用此概念。内码表定义了字元的映射代码。最初的IBM字元集被称作内码表437,或者「MS-DOS Latin
US)。内码表850就是「MS-DOS Latin 1」,它用附加的带重音字母(但 不是 图2-2所示的Latin 1
ISO/ANSI标准)代替了一些线形字元。其他内码表被其他语言定义。最低的128个代码总是相同的;较高的128个代码取决於定义内码表的语言。
在MS-DOS中,如果用户为PC的键盘、显示卡和印表机指定了一个内码表,然後在PC上创建、编辑和列印文件,一切都很正常,每件事都会保持一致。然而,如果用户试图与使用不同内码表的用户交换档案,或者在机器上改变内码表,就会产生问题。字元码与错误的字元相关联。应用程式能够将内码表资讯与文件一起保存来试图减少问题的产生,但该策略包括了某些在内码表间转换的工作。
虽然内码表最初仅