C gnome终端支持DOS代码页吗?

C gnome终端支持DOS代码页吗?,c,command-prompt,codepages,gnome-terminal,C,Command Prompt,Codepages,Gnome Terminal,在我的C程序中,我不得不将unicode框中的绘图字符转换为DOS代码页437的转义字符,以使其在Windows命令提示符下工作。在本机编译linux程序时,是否可以更改gnome终端的代码页以正确显示这些字符 谢谢。来自 当前gnome终端不可用 设置代码页437,但是 它确实支持其他 就NetHack的目的而言, 比如862(希伯来语) 打开代码页862 gnome终端: 选择终端->设置字符编码->添加或删除 在左侧窗格中,选择描述为希伯来语和希伯来语的行 编码IBM862 单击两个窗格

在我的C程序中,我不得不将unicode框中的绘图字符转换为DOS代码页437的转义字符,以使其在Windows命令提示符下工作。在本机编译linux程序时,是否可以更改gnome终端的代码页以正确显示这些字符

谢谢。

来自

当前gnome终端不可用 设置代码页437,但是 它确实支持其他 就NetHack的目的而言, 比如862(希伯来语)

打开代码页862 gnome终端:

  • 选择终端->设置字符编码->添加或删除
  • 在左侧窗格中,选择描述为希伯来语和希伯来语的行 编码IBM862
  • 单击两个窗格之间的向右箭头
  • 单击关闭
以上步骤只需完成即可 在侏儒的一生中只有一次 安装。一旦完成,它就是 足以:

  • 选择终端,设置字符编码,然后选择希伯来语(IBM862)
应该注意的是,当前 Ubuntu中的默认gnome终端字体 Jaunty完全支持DECgraphics as 只要八位tty设置为false


如果需要这些字符,则应使用其正确的Unicode代码点值并将其输出为UTF-8。或者,如果您愿意,您可以将它们输出为宽字符,并让标准库的语言环境系统负责将它们转换为UTF-8或用户选择的另一种“本机”编码(甚至可能是CP437,尽管我从未见过如此糟糕的系统设置…。

+1获取Nethack的答案!然后+1表示另一个答案,因为它更健壮,更有意义这是我最初做的,但Window的命令提示符太差了,在没有解决办法的情况下,默认情况下它不能很好地支持Unicode,所以我将它们转换为代码页437个字符。宽字符的转换我不太理解,但通常它们最终会变成+和|,而不是正确的方框绘制字符。与其破坏程序,在正确的系统上需要难看的解决方法,我只需要在windows上创建某种包装层,将Unicode代码页字符转换为DOS代码页字符。这不是一个简单的方法,Win32 API函数能够将Unicode写入控制台。所有这些乱七八糟的代码页都忽略了一点,即在WindowsNT上,控制台下面使用Unicode。