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

Entrée/Sortie Java Discussion :

Quel est cet encodage? Comment le décoder?


Sujet :

Entrée/Sortie Java

  1. #1
    Futur Membre du Club
    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é
    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
    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++
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  4. #4
    Futur Membre du Club
    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
    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++
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  6. #6
    Membre actif
    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
    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...

###raw>template_hook.ano_emploi###