Могу ли я отправить строку в IME (Windows), чтобы получить перевод? - PullRequest
1 голос
/ 28 июня 2010

Например (я использую корейский IME, кстати) можно ли получить 태우다 от отправки "xodnek" (в виде строки)?

Если это невозможно, могу ли я получить 태우다 от отдельных символовㄷㅏ ㅐ ㅇㅜ ㄷㅏ (который из клавиш "xodnek").

1 Ответ

1 голос
/ 28 июня 2010

Если вы используете .NET, будет работать следующее:

var s = "ㅌㅐㅇㅜㄷㅏ";
s = s.Normalize(NormalizationForm.FormKC);
// s now contains "태우다"

В родном Win32 соответствующий вызов NormalizeString :

wchar_t *input = L"ㅌㅐㅇㅜㄷㅏ";
wchar_t output[100];
NormalizeString(NormalizationKC, input, -1, output, 100);

NormalizeString доступна только в Windows Vista +. Вам нужно установить « API-интерфейсы для смягчения интернационализированных доменных имен Microsoft », если вы хотите использовать его в XP (почему он загружается в IDN, я не понимаю ...)

Обратите внимание, что ни один из этих методов на самом деле не требует использования IME - они работают независимо от того, установлен ли у вас корейский IME или нет.

...