Maison > développement back-end > C++ > Comment puis-je imprimer avec succès des caractères Unicode en C ?

Comment puis-je imprimer avec succès des caractères Unicode en C ?

Patricia Arquette
Libérer: 2024-12-09 20:28:12
original
642 Les gens l'ont consulté

How Can I Successfully Print Unicode Characters in C  ?

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;
}
Copier après la connexion

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';
Copier après la connexion

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";
}
Copier après la connexion

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";
}
Copier après la connexion

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;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal