the console app (writeln, I assume) is a different issue. Probably a need for Utf8 to Utf16 conversation.
Writeln is part of fpc, and doesn't necessarily have the same feature supported as the LCL has..., then again I don't know.
But if so, probably a need for a "writeln" that does this automatically, so developers do not need to put platform depended IFDEF in their code....
As for IME input under gtk2. Unfortunately, I have no idea how it works.
Under windows, and app does not need to do anything, Windows will take 100% care of the IME editor. (An app *can* (optional) provide feedback about IME editing (like position for the editor)
Under GTK(2),QT,Carbon => no idea.
If you have info, please point it out (However, I can not say were in the huge stack of other planed/needed features this will end up)