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
Linda Hamiltonoriginal
2024-12-11 17:58:10654parcourir

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

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

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!

Déclaration:
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