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

Entrée/Sortie Java Discussion :

Conversion UTF-8 en code normal


Sujet :

Entrée/Sortie Java

Vue hybride

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 54
    Par défaut Conversion UTF-8 en code normal
    Bonjour tout le monde, je m'excuse par avance si je me trompe de section.
    Voila mon problème j'essaye de me connecter à un serveur HTTP.
    Je demande une page spécifique et la réponse renvoyé est une string représentant un objet JSON codée en UTF-8.

    Voici la réponse renvoyer par le serveur :
    {"Title":"Accent - Wikipédia","Url":"http://www.wikipedia.fr"}

    Voici la réponse que j'aimerai avoir :
    {"Title":"Accent - Wikipédia","Url":"http://www.wikipedia.fr"}
    ou même
    {"Title":"Accent - Wikipédia","Url":"http://www.wikipedia.fr"}

    Auriez vous une solution à mon problème ?

    Parmit mes solutions envisager qu'elle est celle pour vous qui conviendrait le mieux ?

    - Demander au serveur (lors de la requette http) de m'envoyer les reponces sous le format ANSI par exemple.
    - Transformer manuellement les données reçu via une table de conversion ex : é = é


    Merci d'avance pour votre aide.

    Cordialement Michwii

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    la solution la plus adaptée est évidement de lire la réponse directement en utf-8. Si le serveur te renvoie une réponse UTF-8 et que tu la lit avec un décodeur ISO-8859, c'est trop tard pour rattraper le coup.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 54
    Par défaut
    Merci de ta réponse =D
    Connaitrait tu par hasard un bon décodeur ?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Le décodage byte->String est géré par les Reader java. C'est donc le choix du reader fait lors de la lecture de la réponse qui est en cause. Il n'y a rien de particulier à installer ou ajouter.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 54
    Par défaut
    Je ne pense pas que le problème vient de mon reader car je n'en utilise pas.
    J'utilise simplement la classe InputStream.

    Je te montre mon code source :
    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
     
    public String getDocumentFrom2(URL url){
    		String valeurRetourne = "" ;
    		URLConnection urlConnection ;
    		InputStream in ;
    		//String ligneLu = "";
    		try {
    			urlConnection =  url.openConnection() ;
    			in = urlConnection.getInputStream();
    			int reponse = in.read() ;
    			while(reponse != -1){
    				System.out.print((char)reponse);
    				reponse = in.read() ;
    			}
    			in.close() ;
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return valeurRetourne ;
    	}
    Voici un bout de la réponse que j'obtiens : Wikipédia au lieu de Wikipédia.
    Mon code lit 10 caractères au lieu de 9

    Merci d'avance, Cordialement Michwii

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 54
    Par défaut J'ai trouver
    Je suis trop CONTEEEEENNNNNNNNT
    C'est bon j'ai trouver, voici pour ceux qui auront le même problème que moi comment le résoudre .

    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
     
    public String getDocumentFrom2(URL url){
    		String valeurRetourne = "" ;
    		URLConnection urlConnection ;
    		InputStreamReader in ;
    		//String ligneLu = "";
    		try {
    			urlConnection =  url.openConnection() ;
    			in = new InputStreamReader(urlConnection.getInputStream(),"UTF-8");
    			int reponse = in.read() ;
    			while(reponse != -1){
    				System.out.print((char)reponse);
    				reponse = in.read() ;
    			}
    			in.close() ;
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return valeurRetourne ;
    	}

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    oui enfin, il vaut mieux utiliser un char qu'un int() voir carrément utiliser read(char[]). On peux rajouter aussi un BufferedReader pour avoir droit à un readLine.

  8. #8
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    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 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    oui enfin, il vaut mieux utiliser un char qu'un int() voir carrément utiliser read(char[]).
    Si on utilise read() on doit utiliser un int pour la fin de flux.
    Par contre c'est vrai qu'il est préférable d'utiliser read(char[]) pour limiter le nombre d'accès I/O...

    Citation Envoyé par tchize_ Voir le message
    On peux rajouter aussi un BufferedReader pour avoir droit à un readLine.
    Si on veut récupérer tout le fichier il est préférable de faire une lecture par buffer avec read(char[])...

    a++

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

Discussions similaires

  1. problème de conversion UTF -> iso
    Par Empty_body dans le forum Général Java
    Réponses: 15
    Dernier message: 01/08/2008, 16h57
  2. Conversion UTF-8 -> EBCDIC et entities
    Par kij dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 21/01/2008, 14h10
  3. Encodage : Conversion UTF-8 vers ISO-8859-?
    Par polo54 dans le forum Général Java
    Réponses: 6
    Dernier message: 26/06/2007, 19h10
  4. Conversion utf-8 an code ascii
    Par Haplo2006 dans le forum Langage
    Réponses: 2
    Dernier message: 22/03/2007, 10h11
  5. Conversion UTF => ISO
    Par komoku dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2007, 12h14

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