News:

Simutrans Chat Room
Where cool people of Simutrans can meet up.

[GDI nightly] Cannot input Japanese using IME

Started by z9999+, July 06, 2014, 11:36:45 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

z9999+

r7264 GDI, Windows 8.1 Update, Microsoft Japanese IME

I cannot input Japanese text with IME.

An another strange thing is that text on simutrans window's title bar shows only 'S'. This problem doesn't happen in SDL version. SDL version shows 'Simutrans 120.0.1 Nightly -r7264' on its title bar.

Ters

I have no experience with asian codepages, but I suspect feeding a hardcoded ASCII string to CreateWindowEx can fail in such a way on a system that doesn't have an ASCII compatible "ANSI" codepage, and that such "strange" "ANSI" codepages are normal on oriental Windows systems.

prissi

No if you send a ANSI string ti a UTF16 (like windows) you should not get an "S". Even more if you use explicitely CreateWindowExA.

I would like to get more informations, if this is a self-compiled build and if it was done in MSVC (which worked with IME on windows8.1 for me some revisions back).

Ters

Quote from: prissi on July 06, 2014, 10:56:05 PM
Even more if you use explicitely CreateWindowExA.

Only as long as all Windows code pages are identical (with som leniency) in the range [0, 127]. They might be, I only know the Windows 1252 code page.

Quote from: prissi on July 06, 2014, 10:56:05 PM
No if you send a ANSI string ti a UTF16 (like windows) you should not get an "S".

If one does the other way around, one will however get just an "S" (assuming UTF16LE). This will only happen if someone made a buggy build, most likely after tampering with the source code. It will then also have nothing to do with Windows 8.1 or Japanese.

prissi

UTF16 as done with windows would result in the character 0x6953 楓 ... (the small endian iS in hex).

Ters

Quote from: prissi on July 07, 2014, 09:06:19 PM
UTF16 as done with windows would result in the character 0x6953 楓 ... (the small endian iS in hex).

That would be ANSI as UTF16LE again, "Simutrans" in UTF16LE (0x0053, 0x0069, ...) interpreted as ANSI would be 0x53, 0x00, 0x69, 0x00, ... which would be considered terminated at the second byte since it is 0, hence just "S".

prissi


Ters

Quote from: prissi on July 17, 2014, 10:53:35 PM
Anyway can anyone reproduce this?

I'm waiting for z9999+ to answer your question before spending more time on it.

Quote from: prissi on July 06, 2014, 10:56:05 PM
I would like to get more informations, if this is a self-compiled build and if it was done in MSVC (which worked with IME on windows8.1 for me some revisions back).