Thread overview |
---|
July 16, 2018 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. |
July 16, 2018 Re: CJK problem when using console outputs | ||||
---|---|---|---|---|
| ||||
Posted in reply to zhani | 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 -------------------------------------------------- |
July 16, 2018 Re: CJK problem when using console outputs | ||||
---|---|---|---|---|
| ||||
Posted in reply to zhani | 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("안녕하세요"); } ---- |
July 17, 2018 Re: CJK problem when using console outputs | ||||
---|---|---|---|---|
| ||||
Posted in reply to ag0aep6g | On Monday, 16 July 2018 at 18:16:45 UTC, ag0aep6g wrote:
> On 07/16/2018 11:30 AM, zhani wrote:
>> [...]
>
> 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("안녕하세요");
> }
> ----
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.
|
Copyright © 1999-2021 by the D Language Foundation