扩展ASCII码表

时间:2025-04-24 08:16:22

         C++课程要求写一个“五子棋”程序,首先要解决的就是五子棋棋盘的显示问题。一开始的想法是通过打印ASCII码表中的 “Box Drawing Character”来显示出棋盘,于是就动手在“Visual Studio 2010”上实现,程序编译通过,但是就是无法在DOS界面中显示,转到linux上运行,同样遇到这个问题。而程序在“Visual C++”上运行时可以正常显示五子棋棋盘。最终发现原因在于不同的平台对“Extended ASCII Code”的支持是不同的。

         ASCII(American Standard Code for Information Interchange):ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符,分标准ASCII码与扩展ASCII码

         标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。在标准ASCII中,其最高位(b7)用作奇偶校验位。

         扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高”)ASCII。


         由于“Visual Studio 2010”默认情况下不支持扩展ASCII码,所以无法打印128~255的字符,但是通过“system(chcp 437)”切换控制台代码页,转换为OEM-美国,则可显示出扩展码。Linux平台上也是不支持扩展ASCII码的,我尝试了像“Visual Studio 2010”一样切换代码页,也无法解决,Google了下,有人建议使用Unicode等其他的编码格式,但是貌似挺麻烦。