IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques C++ Discussion :

Conversion de texte au format Windows-1256 vers UTF-8


Sujet :

Bibliothèques C++

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Conversion de texte au format Windows-1256 vers UTF-8
    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

    "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."
    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.

    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

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par donquichotte Voir le message
    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
    Effectivement, la page de code 1256 ne semble pas supportée par ta bibliothèque standard, ce qui peut être normal sous Unix, pour une page de code Windows.

    Peut-être suis-je parti dans une mauvaise direction, donc si vous avez des conseils à me donner là dessus, ça serait avec grand plaisir !
    Puisque l'utilisation de la SL semble compromise, il te reste deux possibilités : utiliser une autre bibliothèque ou le faire toi même.

    Pour la première éventualité, commence par vérifier si dans les bibliothèques que tu utilise déjà s'il n'y a pas de fonctionnalités de conversion, il n'est pas rare que des bibliothèques plus ou moins généralistes comme Qt contiennent tout ce qu'il faut pour le faire. Sinon la première qui me vient à l'esprit c'est ICU.

    L'autre solution, le faire à la main, n'est pas très compliqué. Il faudra d'abord convertir de windows-1256 à Unicode puis de Unicode à UTF-8. Une visite à Wikipedia devrait fournir toutes les informations nécessaires sur ces deux encodages. Le code comportera une simple table de 256 entrées pour la première conversion et quelques if-else pour la seconde.

Discussions similaires

  1. Réponses: 31
    Dernier message: 02/11/2010, 20h07
  2. Réponses: 1
    Dernier message: 26/03/2010, 13h11
  3. Encodage windows-1251 vers utf-8
    Par Vigoo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 17/08/2009, 18h31
  4. conversion utf-8 to windows-1256
    Par bailamos dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 28/04/2008, 14h50
  5. fichier texte non formater vers mysql
    Par rezareza dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 23/01/2008, 03h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo