digitalmars.D.learn - CJK problem when using console outputs
howdy :-) 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 ?볝굯?ャ걾? 鵝졾? ?덈뀞?섏꽭? -------------------------------------------------- wow, very cool. see, wolrd-wise came here on dmd. In fact, when i using dmd that older version, i solved this problem with a cheated a way like this: -------------------------------------------------- static this(){ core.stdc.wchar_.fwide(core.stdc.stdio.stdout, 1); setlocale(0, cast(char*)"korea"); } -------------------------------------------------- but the 'dmd v2.081.1' didnt want this. i guess, because a core package is invisiable now. yap. how can i solve this problem using clean a way? thanks.
Jul 16 2018
On Monday, 16 July 2018 at 09:30:22 UTC, zhani wrote:howdy :-) i got some problem about using CJK in windows10 console. [...]oh, sorry for my mistake. here: --------------------------------------------------writeln("你好"); // C writeln("こんにちは"); // J writeln("안녕하세요"); // K--------------------------------------------------
Jul 16 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("안녕하세요"); } ----
Jul 16 2018
On Monday, 16 July 2018 at 18:16:45 UTC, ag0aep6g wrote:On 07/16/2018 11:30 AM, zhani wrote:thank you for reply. :-) i removed a code that my cheated and solved it. i still, don't know why dmd didn't support CJK by default when write a console. Dlang must be a world-wise for everyone. anyway, thank you so much.[...]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("안녕하세요"); } ----
Jul 17 2018