2017-09-12 5 views
1

J'ai essayé d'imprimer des caractères chinois en C++. J'ai déjà cherché dans l'Internet, certains ont dit que vous devez utiliser wcout, d'autres ont suggéré d'autres méthodes. Je suis également tombé sur this post, où quelqu'un utilise un morceau de code:Impression de caractères chinois en C++

#include <iostream> 
int main() 
{ 
char x[] = "中"; 
char y[] = u8"中"; 
wchar_t z = L'中'; 
char16_t b = u'\u4e2d'; 
char32_t a = U'\U00004e2d'; 

std::cout << x << '\n'; 
std::cout << y << '\n'; 
std::wcout << z << '\n'; 
std::cout << a << '\n'; 
std::cout << b << '\n';  
} 

qui, sur un site Internet qui montre la sortie du code C++, impressions:

中 
中 
- 
20013 
20013 

Cependant, pour moi J'imprime simplement

õ©¡ 
õ©¡ 
20013 
20013 

J'utilise JetBrains CLion, avec un codage défini sur UTF-8. Cependant, j'ai aussi essayé Visual Studio et QT Creator, j'ai le même résultat. J'espère que quelqu'un peut m'aider.

+2

Le problème provient du terminal (où cout écrit) n'utilisant pas tous les symboles possibles, mais seulement un sous-ensemble de l'ensemble de l'Unicode. – Ripi2

+2

Copie possible de [Comment imprimer un caractère Unicode en C++?] (Https://stackoverflow.com/questions/12015571/how-to-print-unicode-character-in-c) – Ripi2

Répondre

0

Si vous utilisez OSX Terminal, vous pouvez peut-être vérifier l'encodage.

Terminal -> Préférences -> codages Tab

Vérifiez ensuite si chinois traditionnel est cochée ou Unicode (UTF-8).

Pour Windows, vous pouvez essayer ceci, pour passer à l'encodage UTF-8.

Allez sur Démarrer puis sur Exécuter "regedit" -> Accédez à [HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ Autorun] -> modifier la valeur à "chcp 65001"

Hope this helps.