【发布时间】:2015-10-23 19:45:42
【问题描述】:
如您所见,D 无法输出德语变音符号。至少在 Windows 上。在 Linux 或 BSD 上,相同的程序会输出我保存的字符串。
我已经尝试过 wstring 或 dstring,但是输出是一样的。
我做错了什么?
【问题讨论】:
标签: string encoding character-encoding cross-platform d
如您所见,D 无法输出德语变音符号。至少在 Windows 上。在 Linux 或 BSD 上,相同的程序会输出我保存的字符串。
我已经尝试过 wstring 或 dstring,但是输出是一样的。
我做错了什么?
【问题讨论】:
标签: string encoding character-encoding cross-platform d
无论操作系统如何,D 都将输出 UTF-8。如何解释输出取决于它的显示方式。在这种特殊情况下,您的 IDE 似乎将输出解释为以 Windows-1252 编码进行编码。
对于标准 Windows 控制台,您可以通过调用 SetConsoleOutputCP(65001) 更改输出编码,但请注意,这可能会产生一些不希望的副作用(您应该在程序退出之前恢复代码页,并且批处理文件可能在控制台输出代码页设置为 65001)。
【讨论】:
SetConsoleOutputCP 不是全局设置,它会更改当前窗口的设置。
CyberShadows 帖子引导我找到可接受的答案。 :-)
在 Eclipse 中,可以在不更改操作系统的全局设置的情况下更改输出编码。 转到运行 --> 运行配置...
选择 Common-Tab 并将编码更改为 UTF-8。现在德语变音符号显示正确。至少在 Eclipse 中。 :-)
另一种可能性是使用 https://babun.github.io/ 。它是一个基于 Cygwin 的 Shell,输出 UTF-8:
【讨论】: