Maison > Article > développement back-end > Comment sortir correctement les chaînes UTF-8 vers « std :: cout » sous Windows ?
Traitement des chaînes UTF-8 en C sous Windows
L'encodage des chaînes au format UTF-8 est largement utilisé pour les applications multiplateformes. Cependant, la sortie de chaînes UTF-8 vers std::cout sous Windows présente des défis uniques.
Le comportement par défaut sous Windows est que std::cout s'attend à des chaînes dans des formats non Unicode. Lorsqu'il est présenté avec des chaînes UTF-8, il affiche des caractères corrompus.
Pour résoudre ce problème, il existe deux étapes principales :
Voici un extrait de code révisé qui intègre ces solutions :
<code class="cpp">#include <string> #include <iostream> #include <Windows.h> #include <cstdio> int main() { // Set console code page to UTF-8 SetConsoleOutputCP(CP_UTF8); // Enable buffering to prevent byte-by-byte transmission setvbuf(stdout, nullptr, _IOFBF, 1000); // Output UTF-8 string std::string test = u8"Greek: αβγδ; German: Übergrößenträger"; std::cout << test << std::endl; return 0; }</code>
De plus À ces étapes, notez que les polices raster de la console Windows peuvent ne pas afficher correctement les caractères Unicode non-ASCII. Pour permettre un rendu correct, il est recommandé de passer à une police TrueType, qui est désormais la police par défaut dans Windows 10 et versions ultérieures.
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!