我用MVSC++写了一个程序,它输出内存内容(ASCII码)。我在windows控制台中看到的ASCII似乎与我在各种ASCII表(笑脸、菱形、梅花、右箭头等)中看到的是一致的。这个程序需要在Linux下编译(确实如此),但是ASCII输出看起来完全不同。一些符号是相同的,但其余的是如此不同。有没有办法改变终端显示ASCII码的方式?
编辑:程序执行正确,只是ASCII的显示有所不同。
发布于 2009-06-09 01:17:21
ASCII定义从0x00到0x7f的字符代码。其他所有内容(0x80-0xff)都不是ASCII标准的一部分,而取决于操作系统对要显示的字符的定义。但是,您提到的字符(笑脸、菱形、俱乐部等)是ASCII“控制字符”的表示,通常没有视觉表示。Windows允许您打印这样的字符并查看它为它们定义的字形,但是您的Linux可能将控制字符解释为格式化控制代码(它们确实是),而不是打印相应的字形。
发布于 2009-06-09 01:21:14
您看到的是IBM在PC首次问世时最初包含的“扩展”字符集。是的,我们将回到强大的恐龙时代,所以请耐心听我说。这些字符活在$7F以上,屏幕上对其符号的解释甚至会受到所选字体的影响。大多数linux发行版现在都使用UTF-8 (或类似的格式),因此,安装的字体可能具有完全不同的符号,甚至缺少字形。在比较相同数据的"ASCII“表示法(这是一个误称,因为它不是真正的ASCII码)的情况下,它可能完全匹配,也可能不完全匹配,因为您必须在两种显示字体中使用相同的”字形“渲染才能正确地看到相似的表示法。如果可能的话,尝试让你的Windows和Linux安装使用相同的字体,然后看看是否有变化。
发布于 2010-05-29 06:54:10
如果你的浏览器支持Unicode (并且你安装了正确的字体),你会在下面看到它们。您可以复制并粘贴到支持unicode的编辑器(记事本)中。另存为UTF-16BE,如果您在HexEditor中打开,您将看到每个字符可见字形的所有unicode代码。在示例中,第一个ascii字符Null在c\c++\java中具有Unicode可见字形0x2639,您可以像\u2639一样使用它。它不是空字符,而是可视化表示。
http://en.wikipedia.org/wiki/Code_page_437
*+,-./0123456789:“#$%&‘()☹☺☻♥♦♣♠·◘0◙♂♀♪♫☼►◄↕‼§▬↨↑↓→←∟↔▲!”<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■⓿
https://stackoverflow.com/questions/967738
复制相似问题