Bonjour à tous !
J'ai codé un programme en C++ sous UNIX qui doit traiter un flux de données et transmettre certaines informations à un autre composant, mais certaines de ces données sont au format Windows-1256. Or il faudrait que je les envoie au format UTF-8 car c'est ce qu'attendent les autres composants.
Je ne suis pas sûr s'il faut passer par les facets, car j'ai lu ici : http://www.alaide.com/cours.php?c=4&chapter=595
Peut-on vraiment passer d'un code vers l'autre avec la facette codecvt ? Si oui je ne comprends pas vraiment comment faire. Je ne sais pas non plus quel std_name donner en parametre à un codecvt_byname pour representer le windows-1256."La facette codecvt permet de réaliser les conversions d'une représentation des caractères à une autre, mais n'a pas pour but de changer l'encodage des caractères, c'est-à-dire l'association qui est faite entre les séquences de nombres et les caractères. Cela signifie que la facette codecvt permet par exemple de convertir des chaînes de caractères larges wchar_t en séquences de longueurs variables de caractères de type char, mais elle ne permet pas de passer d'une page de codes à une autre."
J'ai trouvé ici une courte liste des types possibles, mais je ne trouve pas la mienne : http://stdcxx.apache.org/doc/stdlibr...vt-byname.html => Table 15: Supported common codesets
Peut-être suis-je parti dans une mauvaise direction, donc si vous avez des conseils à me donner là dessus, ça serait avec grand plaisir !
Merci![]()
Partager