【问题标题】:D Language fails to display german Umlaute on Windows?D 语言无法在 Windows 上显示德语变音符号?
【发布时间】:2015-10-23 19:45:42
【问题描述】:

如您所见,D 无法输出德语变音符号。至少在 Windows 上。在 Linux 或 BSD 上,相同的程序会输出我保存的字符串。

我已经尝试过 wstring 或 dstring,但是输出是一样的。

我做错了什么?

【问题讨论】:

    标签: string encoding character-encoding cross-platform d


    【解决方案1】:

    无论操作系统如何,D 都将输出 UTF-8。如何解释输出取决于它的显示方式。在这种特殊情况下,您的 IDE 似乎将输出解释为以 Windows-1252 编码进行编码。

    对于标准 Windows 控制台,您可以通过调用 SetConsoleOutputCP(65001) 更改输出编码,但请注意,这可能会产生一些不希望的副作用(您应该在程序退出之前恢复代码页,并且批处理文件可能在控制台输出代码页设置为 65001)。

    【讨论】:

    • 我对更改控制台的全局设置感到不舒服。没有更清洁的解决方案吗?为什么 C++ 或 Java 输出不受此问题的影响?
    • SetConsoleOutputCP 不是全局设置,它会更改当前窗口的设置。
    • C++ 和 Java 可能不输出 UTF-8。
    • Java 的运行时很可能会检查什么是底层操作系统并调整输出编码......也许 Phobos 也应该这样做。
    【解决方案2】:

    Cyber​​Shadows 帖子引导我找到可接受的答案。 :-)

    在 Eclipse 中,可以在不更改操作系统的全局设置的情况下更改输出编码。 转到运行 --> 运行配置...

    选择 Common-Tab 并将编码更改为 UTF-8。现在德语变音符号显示正确。至少在 Eclipse 中。 :-)

    另一种可能性是使用 https://babun.github.io/ 。它是一个基于 Cygwin 的 Shell,输出 UTF-8:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-23
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      相关资源
      最近更新 更多