【问题标题】:Does gnome-terminal support DOS code pages?gnome-terminal 是否支持 DOS 代码页?
【发布时间】:2011-04-01 06:20:53
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: c command-prompt codepages gnome-terminal


    【解决方案1】:

    来自https://nethackwiki.com/wiki/IBMgraphics

    当前的 gnome-terminal 没有 有代码页 437 的设置,但是 它确实支持其他代码页 对于 NetHack 的目的来说是等价的, 例如 862(希伯来语)。

    设置代码页 862 侏儒终端:

    • 选择终端->设置字符编码->添加或删除。
    • 在左侧窗格中,选择带有希伯来语描述的行,然后 编码 IBM862。
    • 单击两个窗格之间的向右箭头。
    • 单击关闭。

    以上步骤只需要做 侏儒一生一次 安装。完成后就是 足以:

    • 选择终端、设置字符编码,然后选择希伯来语 (IBM862)。

    需要注意的是,当前 Ubuntu 中的默认 gnome-terminal 字体 Jaunty 完全支持 DECgraphics 作为 只要将 Eight_bit_tty 设置为 false。

    【讨论】:

    • +1 来自 Nethack 的回答!然后 +1 到另一个答案,因为它更健壮并且更有意义。 ;-)
    【解决方案2】:

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

    【讨论】:

    • 这就是我最初所做的,但是 Window 的命令提示符太差以至于默认情况下它不能很好地支持 Unicode,所以我将它们转换为代码页 437 个字符。我不太了解宽字符的转换,但通常它们最终会变为 + 和 |而不是正确的方框图字符。
    • 与其破坏您的程序并要求在正确的系统上使用丑陋的变通方法,不如在 Windows 上制作某种包装层以将 Unicode 转换为 DOS 代码页字符。..
    • 它不是command promptit's a console,而且WriteConsoleW() Win32 API 函数非常有能力将Unicode 写入控制台。所有这些与代码页有关的事情都忽略了控制台下面在 Windows NT 上使用 Unicode 的这一点。
    猜你喜欢
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2015-12-04
    相关资源
    最近更新 更多