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

Android Discussion :

Problème caractères spéciaux XML


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 82
    Par défaut Problème caractères spéciaux XML
    Bonjour à tous,

    Je rencontre un problème sur les caractères spéciaux lors d'un parsing de flux XML lors du dev d'une app Android.
    En fait le parse s'effectue correctement mais les caractères spéciaux sont remplacés. (ex: é par é)

    J'ai vu cela en faisant un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(StringXml)
    Du coup, l'application n'affiche que les caractères présents avant les caractères spéciaux et je n'ai aucune erreur qui remonte dans le LogCat

    Voici une url de xml identique à celui qui me pose problème

    http://www.twitter.com/statuses/user...l_Tho&count=20

    Je pense qu'il s'agit d'un problème d'encodage mais j'ai cherché et rien trouvé pour le moment.

    Si qq'un a déjà rencontré ce problème je suis preneur de la solution.

    Merci par avance

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Tu pourrais mettre le code de ton parseur ?

    Il ne devrait normalement pas s'arrêter là, donc je suspecte un petit truc qui ne va pas dans la méthode 'foundCharacters' (ou équivalent).
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 82
    Par défaut
    Voici la méthode getXml();

    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
    19
    20
    21
    22
    23
    24
    25
     
    public static String getXML(){	 
    			String line = null;
     
    			try {
     
    				DefaultHttpClient httpClient = new DefaultHttpClient();
    				HttpGet httpGet = new HttpGet(urlXml);
     
    				HttpResponse httpResponse = httpClient.execute(httpGet);
     
    				HttpEntity httpEntity = httpResponse.getEntity();
    				line = EntityUtils.toString(httpEntity);
     
     
    			} catch (UnsupportedEncodingException e) {
    				line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
    			} catch (MalformedURLException e) {
    				line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
    			} catch (IOException e) {
    				line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
    			}
     
    			return line;
    }
    C'est donc sur

    que j'obtiens la conversion en ISO de mes caractères spéciaux

    Merci en tous les cas

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Citation Envoyé par Hizin
    Tu pourrais mettre le code de ton parseur ?
    S'il te plaît
    Ce n'est pas le parseur là, mais uniquement la demande et réception du flux là.

    Si tu ne fais aucun traitement sur ce flux, c'est que les caractères viennent au moment de sa génération.
    Tu peux essayer un petit coup de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Html.fromHtml(line).toString()
    (enlève le toString() si tu veux un Spanned).

    Doc : http://developer.android.com/referen...text/Html.html
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 82
    Par défaut
    Merci pour la réponse.
    Oui, je sais que ça n'est pas le parseur.
    Simplement, c'est ici que je reçois mes caractères encodés ISO donc c'est ici que je voulais corriger le problème.

    En tous cas, voici ce que j'ai fais pour contourner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import org.apache.commons.lang3.StringEscapeUtils;
     
    /*.......*/
    public static String getXML(){	 
               String line = "";
               line = StringEscapeUtils.unescapeHtml3(line);
    }

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par flo73 Voir le message
    Simplement, c'est ici que je reçois mes caractères encodés ISO donc c'est ici que je voulais corriger le problème.
    Mais... Il n'y a aucun problème. C'est comme ça que ça marche, le XML, et ça se lit avec un parseur XML.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Problème caractères spéciaux XML
    Par tatutatu2009 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 21/12/2011, 15h03
  2. [XML] Problème caractère spéciaux !
    Par blanchonvincent dans le forum Flash
    Réponses: 0
    Dernier message: 14/03/2008, 14h06
  3. Problème caractères spéciaux...
    Par the_edge dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2006, 09h49
  4. [MySQL]Problèmes caractères spéciaux
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/03/2006, 08h47
  5. Problème caractères spéciaux
    Par TeKaBloK dans le forum C
    Réponses: 2
    Dernier message: 26/12/2005, 13h40

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