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

C++ Discussion :

Convertir de ISO-8859-1 en UTF-8


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Convertir de ISO-8859-1 en UTF-8
    Bonjour,

    Je voudrais savoir comment convertir un string ISO-8859-1 en un string codé en UTF-8. J'utilise geoip qui me renvoi un code city en ISO-8859-1 et il faut que je le stoque dans une base de donnée postgres en UTF-8. Merci d'avance.

    Nico.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Il n'y a rien en standard pour ça.
    Par contre, Unicode commençant par ISO 8859-1, il est trivial de convertir de ISO 8859-1 en UTF-32/UCS-4.
    Ensuite, on trouve assez facilement du code pour convertir UTF-32/UCS-4 en UTF-8...
    Edit: Voir aussi et surtout les liens de cette FAQ.

    Sinon, au niveau bibliothèques, il y a iconv sous POSIX et la fonction WideCharToMultiByte() (conversion UTF-16 vers divers encodages, dont UTF-8) sous Win32.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Convertir du ISO-8859-1 en UTF-8 est trivial puisque ISO-8859-1 et Unicode coïncident parfaitement. Il faut juste encoder les caractères non ASCII en UTF-8.
    Boost ftw

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par loufoque Voir le message
    Il faut juste encoder les caractères non ASCII en UTF-8.
    Ce qui rend la conversion non-triviale

    Enfin, c'est vrai que le mot "convertir" est un peu ambigu. Si on fait la séparation entre charset et encodage, on a :
    • Conversion charset ISO 8859-1 --> charset Unicode: triviale
    • Encodage UTF-8: non-trivial
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Au final j'ai utilisé la fonction isolat1ToUTF8 de la librairie XMLCharEncoding.h que j'avais à disposition et mon problème est réglé. Merci pour vos réponses!

    ++

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    C'est trivial dans le sens que c'est trois lignes et que ça ne nécessite aucune table.
    Boost ftw

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion ISO-8859-1 vers UTF-8 dans Eclipse
    Par Jerhom dans le forum Eclipse
    Réponses: 2
    Dernier message: 03/06/2008, 17h35
  2. [XML] de ISO-8859-1 à UTF-8
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 22/08/2007, 11h32
  3. ISO-8859-1 et UTF-8
    Par NizarK dans le forum Documents
    Réponses: 4
    Dernier message: 22/03/2007, 09h16
  4. Réponses: 1
    Dernier message: 05/12/2006, 16h54
  5. conversion iso-8859-1 vers utf-8
    Par gorgonite dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/08/2006, 12h49

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