文章

DLang 在 Windows 控制台中输出乱码的解决方案

因为 Windows 的控制台默认并不是 UTF-8, 但 DLang 强调使用 UTF-8 格式作为文件编码, 同时我们很大程度上并不希望使用 UTF-8 以外的编码,因此我们需要修改控制台编码。

修改自身操作系统一劳永途的方法很多,网上都能找到,这里只讲嵌入代码中的解决方案方便适配到任何地方。

首先要知道的是在 DLang 中想要导入 Windows 包, 应该是从 core.sys 下寻找 core.sys.windows.windows

1
2
3
4
5
6
7
8
9
import std.stdio;
import core.sys.windows.windows : SetConsoleOutputCP, CP_UTF8;

void main() {
    SetConsoleOutputCP(CP_UTF8);

    writeln("你好世界!");
}

本文章以 CC BY 4.0 授權