发新话题
打印

为什么phobos 使用writefln输出中文在控制台中显示为乱码呢?

////这是原代码 t.d:
import std.stdio;
int main()
{
        writefln("天津");
        return 0;
}
//这是运行后的输出:
C:\dmd\dmd>t
澶╂触

C:\dmd\dmd>

TOP

源文件是否保存为UTF-8格式?
很长时间没有用Phobos了, 用Tango没有这个问题。

TOP

原文件如果不保存为utf-8编码的话,无法编译成功。我已经把原文件保存为utf-8编码后编译的。 但是运行结果是乱码。

TOP

你说得对。可能在这里Phobos中文支持不好。

TOP

试一下这段代码

import std.stdio;

private import std.c.stdio;
extern(c) int setlocale(int,char*);
static this()
{
        fwide(stdout,1);
        setlocale(0,"china");
}
int main()
{
        writef("你好,d");
        return 0;
}

TOP

utf8 对中文 不支持!

TOP

发新话题