How to write asia characters on console?

Lave Zhang via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Feb 8 00:55:07 PST 2015


On Sunday, 8 February 2015 at 06:26:38 UTC, Ali Çehreli wrote:
> On 02/07/2015 09:57 PM, Lave Zhang wrote:
>> Hi,
>>
>> My first D program is like this:
>> -----------------------------------
>> import std.stdio;
>>
>> void main(string[] args)
>> {
>>       dstring s1 = "hello你好"d;
>>       writeln(s1);
>> }
>> -----------------------------------
>> But the output is not correct(and my console codepage is 936):
>>
>> C:\D\dmd2\samples\d>dmd hello.d -offilename hello.exe
>> C:\D\dmd2\samples\d>hello.exe
>> hello浣犲ソ
>>
>> thanks.
>
> This thread may be useful:
>
>
> http://forum.dlang.org/thread/suzymdzjeifnfirtbnrc@dfeed.kimsufi.thecybershadow.net#post-suzymdzjeifnfirtbnrc:40dfeed.kimsufi.thecybershadow.net
>
> Ali

Thanks, my problem has been solved:)
---------------------------------------
import std.stdio;
import core.stdc.wchar_;

extern(C) int setlocale(int, char*);

static this()
{
    fwide(core.stdc.stdio.stdout, 1);
    setlocale(0, cast(char*)"china");
}

int main(string[] args)
{
	string s1 = "hello你好";
	writefln("%s", s1);
	return 0;
}


More information about the Digitalmars-d-learn mailing list