Affichage correct des caractères UTF-8 dans la console Windows
De nombreuses tentatives d'affichage des caractères UTF-8 dans la console Windows à l'aide de méthodes traditionnelles échouent restitue correctement les caractères étendus.
Tentatives infructueuses :
Une approche courante utilisant MultiByteToWideChar() et wprintf() s'est avérée inefficace, ne laissant visibles que les caractères ASCII. De plus, la définition de la page de codes de sortie de la console sur CP_UTF8 à l'aide de SetConsoleOutputCP() et l'écriture directe avec des caractères ASCII entraînaient toujours des caractères corrompus.
Méthodes réussies :
En fin de compte, trois méthodes s'est avéré un succès :
Raison de l'échec avec CP_UTF8 :
Le problème sous-jacent avec CP_UTF8 provient du fait que la console n'agit pas comme un fichier typique acceptant un flux d'octets. Au lieu de cela, l'API de la console gère les données en unités discrètes, ce qui entraîne une interprétation incorrecte des caractères multi-octets lorsqu'ils sont transmis lors d'appels séparés.
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!