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

IO Java Discussion :

Quel est cet encodage? Comment le décoder?


Sujet :

IO Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    juin 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Quel est cet encodage? Comment le décoder?
    Bonjour,
    Je suis sur un programme qui decode des flux xml, et plus particulierement des podcast. Je lis le fichier xml et je rentre dans une base mysql ce que je veux... Mais quand je suis dans ma base, je retrouve des caractères avec un encodage bizarre, ni UTF-8 ni ISO, et bien sur j'aimerais que ces droles de caracteres soient remplacés par les caracteres de notre alphabet bien aimé

    apostrophe donne '
    "é" donne é

    Avez vous une idée du type d'encodage?
    Et comment faire pour le décoder?

    Merci

  2. #2
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2006
    Messages : 2 635
    Points : 4 166
    Points
    4 166
    Par défaut
    C'est le codage HTML, les codes hexadécimaux des caractères sont précédés de "&#".
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    avril 2002
    Messages
    13 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : avril 2002
    Messages : 13 935
    Points : 22 988
    Points
    22 988
    Billets dans le blog
    1
    Par défaut
    Salut,


    On peut facilement modifié cela via les expressions régulières :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
        public static String decode(String str) {
            Pattern pattern = Pattern.compile("&#x([0-9a-fA-F]{2});");
            Matcher matcher = pattern.matcher(str);
            String result = str;
     
            if (matcher.find()) { // Si on trouve au moins un code hexa
                StringBuffer buffer = new StringBuffer();
                do {
                    String value = matcher.group(1); // on récupère le code hexa uniquement
                    char c = (char) Integer.parseInt(value, 16);    // On le convertit en caractère
                    matcher.appendReplacement(buffer, Character.toString(c));    // et on effectue le remplacement
                } while (matcher.find());
                matcher.appendTail(buffer);
                result = buffer.toString();
            }
     
            return result;
        }
    a++

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    juin 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    ok merci c'est cool... j'ai réussi ce que je voulais faire ....
    Mais un autre probleme se pose...
    Parfois je lis des pages web en ISO, et juske la pas de pbm puisque je viens de regler le souci... mais quand je les lis en UTF-8.... je ne sais pas du tout comment faire :s...
    je veut transformer çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    eurockã©ennes de belfort du 30 juin au 2 juillet 2006
    la ferarock est sur place : des interviews, des photos, des articles au jour le jour pour suivre le festival de l’intã©rieur... //
    muse, daft punk, the strokes, depeche mode, des projets spã©ciaux, des quã©bã©cois, des amã©ricains, des franã§ais, des anglais, des belges, un festival cosmopolite et empli de surprises dã©tonantes !...
    en quelque chose de lisible..... et sans les accents si possible !!!
    Mais la je seche vraiment, parce que les caracteres sont vraiment spéciaux... :s

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    avril 2002
    Messages
    13 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : avril 2002
    Messages : 13 935
    Points : 22 988
    Points
    22 988
    Billets dans le blog
    1
    Par défaut
    Heu... Je pense que le problème vient du fait que tu lis en UTF8 alors que les pages sont en ISO-8859-1.

    Tu dois donc les lire en ISO-8859-1 et les transformer ensuite en UTF8 si besoin...

    a++

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    juin 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : juin 2006
    Messages : 194
    Points : 234
    Points
    234
    Par défaut
    Il faut bien distinguer l'encodage et le décodage. Pour accéder à ta base de données, tu dois décoder les entrées de texte dans le format requis par ton sgbd. En revanche, pour l'affichage de ce qui ressort de tes requêtes sql, c'est à l'éditeur de le faire. Si l'affichage se fait dans un navigateur, il faut préciser le format avec le paramètre charset.

    http://www.la-grange.net/w3c/html4.0...t.html#h-5.2.2

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    juin 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci a tous...
    C'était un mélange d'encodage de la bdd et d'encodage des flux xml... j'ai réussi a m'en sortir, non sans mal...

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

Discussions similaires

  1. Quel est cet objet ? (Image jointe)
    Par Spredzy dans le forum Android
    Réponses: 2
    Dernier message: 14/04/2010, 03h09
  2. Quel est cet objet attendu sur Instr ?
    Par Walterbelo dans le forum VBScript
    Réponses: 5
    Dernier message: 15/06/2009, 22h03
  3. Réponses: 6
    Dernier message: 12/06/2006, 14h05
  4. [ASE]quel est l'interet des indexes ds cet ex
    Par Mehdi3 dans le forum Sybase
    Réponses: 4
    Dernier message: 18/04/2006, 12h16
  5. [c#] Quel est cet objet ?
    Par SDuh dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/02/2006, 14h27

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