CJK problem when using console outputs

ag0aep6g anonymous at example.com
Mon Jul 16 18:16:45 UTC 2018


On 07/16/2018 11:30 AM, zhani wrote:
> i got some problem about using CJK in windows10 console.
> 
> here my code(a code file encoded the utf-8):
> --------------------------------------------------
> import std.stdio;
> /*
> static this(){
>      core.stdc.wchar_.fwide(core.stdc.stdio.stdout, 1);
>      setlocale(0, cast(char*)"korea");
> }*/
> void main()
> {
>      writeln("Allo");
>      writeln("こんにちは"); // C
>      writeln("你好");      // J
>      writeln("안녕하세요"); // K
> }
> --------------------------------------------------
> 
> and nice result on windows(cmd and powershell):
> --------------------------------------------------
> Allo
> ?볝굯?ャ걾?
> 鵝졾?
> ?덈뀞?섏꽭?
> --------------------------------------------------

Try this:

----
import std.stdio: writeln;
import std.exception: enforce;
import core.sys.windows.windows: CP_UTF8, SetConsoleOutputCP;
void main()
{
     SetConsoleOutputCP(CP_UTF8).enforce;
     writeln("Allo");
     writeln("こんにちは");
     writeln("你好");
     writeln("안녕하세요");
}
----


More information about the Digitalmars-d-learn mailing list