Impression de caractères Unicode en C
Tentative d'imprimer un caractère Unicode, tel que la lettre cyrillique russe "ф" (U 0444), peut être difficile en C . Cet article explique comment imprimer avec succès des caractères Unicode à l'aide des méthodes C.
Utilisation des noms de caractères universels (UCN)
La méthode la plus simple consiste à utiliser les noms de caractères universels (UCN ). Par exemple, le caractère « ф » a une valeur Unicode de U 0444. En C , vous pouvez le représenter par « u0444 » ou « U00000444 ».
int main() { wchar_t f = '\u0444'; cout << f << endl; }
Utilisation des encodages
Si l'encodage de votre code source prend en charge le caractère souhaité, vous pouvez l'utiliser directement dans votre code. Par exemple, dans l'encodage UTF-8, le caractère « ф » est « u0444 ».
char b = '\u0444';
Impression sur des émulateurs de terminal
Impression de caractères Unicode sur un terminal L'émulateur dépend du codage de l'émulateur et de sa compatibilité avec le codage d'exécution du compilateur. S'ils correspondent, l'utilisation de std::cout est suffisante.
int main() { std::cout << "Hello, ф or \u0444!\n"; }
Gestion des spécificités de Windows
Travailler avec Windows nécessite des considérations supplémentaires. Une approche consiste à définir le descripteur du fichier de sortie sur UTF-16 à l'aide de _setmode().
#include <iostream> #include <io.h> #include <fcntl.h> int main() { _setmode(_fileno(stdout), _O_U16TEXT); std::wcout << L"Hello, \u0444!\n"; }
Alternativement, pour des raisons de portabilité, vous pouvez utiliser des chaînes larges (wchar_t) et écrire dans le flux large (std : wcout) directement.
int main() { wchar_t f = L'\u0444'; // Prepend L to denote wide char literal wcout << f << endl; }
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!