Impression de caractères Unicode en C
Lors de la tentative d'impression d'un caractère avec une valeur Unicode, tel que la lettre minuscule cyrillique Ef (U 0444) , le code suivant peut ne pas fonctionner comme attendu :
int main() { wchar_t f = '1060'; cout << f << endl; }
Solution :
Pour imprimer correctement les caractères Unicode, il existe plusieurs méthodes :
Noms universels de personnages (UCN) :
Caractères littéraux (si pris en charge par l'encodage source) :
Pour l'impression du terminal, le code suivant suppose une compatibilité entre l'encodage d'exécution et l'émulateur de terminal :
#include <iostream> int main() { std::cout << "Hello, ф or \u0444!\n"; }
Pour Windows, paramètre le handle du fichier de sortie en mode UTF-16 est recommandé :
#include <iostream> #include <io.h> #include <fcntl.h> int main() { _setmode(_fileno(stdout), _O_U16TEXT); std::wcout << L"Hello, \u0444!\n"; }
Pour le code portable, la technique suivante peut être utilisé :
#include <iostream> #include <vector> int main() { std::vector<wchar_t> v = {0x444}; std::wcout.write((const wchar_t*)&v[0], 1); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!