Windows XP和Ubuntu Linux中的ASCII

时间:2009-06-09 01:11:46

标签: windows linux ascii

我在MVSC ++中创建了一个输出内存内容的程序(用ASCII格式)。我在Windows控制台中看到的ASCII似乎与我在各种ASCII表(笑脸,钻石,俱乐部,右箭头等)中看到的相匹配。这个程序需要在Linux下编译(确实如此),但ASCII输出看起来完全不同。一些符号是相同的,但其余的是如此不同。有没有办法改变终端显示ASCII代码的方式?

编辑:程序正确执行,它只是以不同方式显示的ASCII。

3 个答案:

答案 0 :(得分:3)

ASCII定义了从0x00到0x7f的字符代码。其他所有内容(0x80-0xff)不是ASCII标准的一部分,取决于操作系统定义的要显示的字符。但是,您提到的字符(笑脸,钻石,俱乐部等)是ASCII“控制字符”的表示,通常不具有直观表示。 Windows允许您打印这些字符并查看它为它们定义的字形,但您的Linux可能将控制字符解释为格式化控制代码(它们是),而不是打印相应的字形。

答案 1 :(得分:1)

您所看到的是IBM最初在PC首次发布时所包含的“扩展”字符集。是的,我们要回到强大的恐龙时代,所以请耐心等待。这些角色的价格高于7F,屏幕上符号的解释甚至会受到所选字体的影响。大多数Linux发行版现在都使用UTF-8(或接近的东西),因此,安装的字体可能具有完全不同的符号,甚至缺少字形。如果您正在比较相同数据的“ASCII”表示(这是一个误称,因为它不是真正的ASCII),它可能会或可能不完全匹配,因为您必须在两种显示字体中具有相同的“字形”渲染正确地看到类似的表示。尝试让Windows和Linux安装尽可能使用相同的字体,然后查看是否有更改。

答案 2 :(得分:0)

如果您的浏览器支持Unicode(并且您安装了正确的字体),您将看到它们。 您可以复制并粘贴到具有unicode支持的编辑器(记事本)。保存为UTF-16BE 然后,如果您在HexEditor中打开,您将看到每个char可见字形的所有unicode代码。 在示例中,第一个ascii char Null具有Unicode可见字形0x2639 在c \ c ++ \ java中你可以使用它\ u2639。 它不是null char而是视觉表示。

http://en.wikipedia.org/wiki/Code_page_437

☹☺☻♥♦♣♠•◘○◙♂♀♪♫↕►◄↕!¶§▬↨↑↓→←∟↔▲▼!“#$%&'()* +, - 。 / 0123456789:;< => @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [] ^ _`ABCDEFGHIJKLMNOPQRSTUVWXYZ {|}〜⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢¥£₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜? ╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσμτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ ⁿ²■⓿