Maison > développement back-end > C++ > Comment puis-je imprimer correctement les caractères Unicode en C ?

Comment puis-je imprimer correctement les caractères Unicode en C ?

Linda Hamilton
Libérer: 2024-12-11 17:58:10
original
651 Les gens l'ont consulté

How Can I Correctly Print Unicode Characters in C  ?

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

Solution :

Pour imprimer correctement les caractères Unicode, il existe plusieurs méthodes :

  • Noms universels de personnages (UCN) :

    • Le caractère 'ф' peut être représenté par « u0444 » ou « U00000444 ».
  • Caractères littéraux (si pris en charge par l'encodage source) :

    • Si l'encodage du code source prend en charge le caractère, il peut être écrit directement sous la forme 'ф'.

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

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

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);
}
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