Mon but final est ici pour écrire une sortie de texte non latin à la console dans Windows via un programme C++. Cmd.exe ne m'amène nulle part, alors j'ai eu la dernière version brillante de PowerShell (qui supporte Unicode). Je l'ai vérifié que je peuxl'impression de caractères unicode dans PowerShell via un programme C++
- type en caractères non-unicode et
- voir la sortie console non-unicode de commandes de fenêtres (comme "dir")
par exemple, je ce fichier, « 가 txt » (가 est la première lettre de l'alphabet coréen) et je peux obtenir une sortie comme ceci:
PS P:\reference\unicode> dir .\가.txt
Directory: P:\reference\unicode
Mode LastWriteTime Length
Name
---- ------------- ------
----
-a--- 1/12/2010 8:54 AM 0 가.txt
jusqu'à présent, si bon. Mais écrire sur la console en utilisant un programme C++ ne fonctionne pas.
int main()
{
wchar_t text[] = {0xAC00, 0}; // 가 has code point U+AC00 in unicode
wprintf(L"%s", text); // this prints a single question mark: "?"
}
Je ne sais pas ce qui me manque. Le fait que je puisse taper et voir 가 sur la console semble indiquer que j'ai les trois morceaux nécessaires (support unicode, police et glyphe), mais je dois me tromper.
J'ai aussi essayé « chcp » sans aucune chance. Est-ce que je fais quelque chose de mal dans mon programme C++?
Merci!
Je viens de remarquer que faire "PS> [char] 0xAC00" imprime le caractère correct. Donc, je suis en train de faire quelque chose de mal dans mon application ... –