Gestion des chaînes UTF-8 en C sous Windows
L'encodage des chaînes car 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 :
#include
#include
#include
#include
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 En plus de ces étapes, notez que les polices raster de la console Windows peuvent ne pas afficher correctement les caractères Unicode non-ASCII. Pour activer 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3