Si vous utilisez .NET, ce qui suit fonctionnera:
var s = "ㅌㅐㅇㅜㄷㅏ";
s = s.Normalize(NormalizationForm.FormKC);
// s now contains "태우다"
Dans Win32 natif, l'appel correspondant est NormalizeString:
wchar_t *input = L"ㅌㅐㅇㅜㄷㅏ";
wchar_t output[100];
NormalizeString(NormalizationKC, input, -1, output, 100);
NormalizeString est uniquement disponible sous Windows Vista +. Vous avez besoin du "Microsoft Internationalized Domain Name (IDN) Mitigation APIs" installé si vous voulez l'utiliser sous XP (pourquoi je ne comprends pas ...)
Notez qu'aucune de ces méthodes ne nécessite l'utilisation de l'IME. travailler indépendamment du fait que vous ayez ou non l'IME coréen installé.
Merci! Une autre chose, j'utilise Delphi, je ne peux pas sembler utiliser le NormalizeString (erreur d'identification non déclaré). Une idée de ce que je fais mal? (déjà téléchargé l'Api & terminé l'exécution de l'assistant d'installation). – Dian
@Dian: malheureusement, je ne connais pas assez Delphi pour pouvoir vous aider avec ça. Je suppose qu'il doit y avoir un moyen d'appeler les API C dans les DLL, mais je ne sais pas ce que c'est, désolé! –
Oh, d'accord. Je n'ai jamais utilisé de DLL auparavant, c'est pourquoi je ne sais pas, mais il y a certainement un moyen de le faire. Merci encore pour votre réponse. Ça a aidé les tas. – Dian