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

Servlets/JSP Java Discussion :

Problème d'encodage avec JTidy


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème d'encodage avec JTidy
    Bonjour

    j'ai une page jsp dont le code est le suivant : (ce code permet de valider un code html)

    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
    <%@ page import="java.io.*,org.w3c.tidy.*"%><%
    System.out.println("----"+request.getParameter("htmlCode"));
      Node xmlDoc = null;
      String maChaine = request.getParameter("htmlCode");
      String(request.getParameter("htmlCode").getBytes(),"UTF-8");
      System.out.println("-------------------------------------------------");
      System.out.println("param = "+maChaine);
      
      InputStream inputStream = new  ByteArrayInputStream(maChaine.getBytes());
      OutputStream outputStream = new ByteArrayOutputStream();
      Tidy tidy = new Tidy();
      tidy.setXHTML(true);
      tidy.setShowWarnings(false);
      tidy.setPrintBodyOnly(true);
      tidy.parseDOM(inputStream, outputStream);
      System.out.println("----->"+outputStream.toString());
    %><%=outputStream.toString()%>
    Si le contenu de la variable maChaine = "<br> brève d'annie"

    le résultat dans la variable outputStream.toString() est <br /> br&Atilde;&uml;ve d'annie

    ce qui explique l'affichage des caractères bizarre !

    normalement je doit avoir le même résultat;

    merci de m'aider pour résoudre le problème d'encodage avec les OutputStream

  2. #2
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    ton problème est soit

    * que le navigateur a utilisé une url encodée en utf-8 et que ton serveur a utilisée un décodage en iso-8859-1. donc la valeur de maChaine est incorrecte.
    * soit ma chaine est correcte, mais comme tu fais une conversion maChaine.getBytes() pour avoir un byteArrayOutputstream et que ensuite tu passe ce stream en input à tidy, tu ne sais pas à l'avance que encodage sera utilisé pour avoir tes byte[] (tu utilise la valeur par défaut de ta plateforme) et tu n'a, à coté de ça, précisé nulle part à tidy quelle est l'encodage de sa source -> tu va te retrouver avec l'encodage de tidy.

    Commence déjà par savoir s machaine est correct. Le plus simple en cas de risque de conflit utf-8/iso-8859-1 c'est encore d'afficher sa longueur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("param = "+maChaine+" longueur: "+maChaine.length());
    quand à tidy, essaie plutot ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    StringWriter sw = new StringWriter();
    tidy.parse(new StringReader(maChaine), sw);
    System.out.println(sw.toString());

Discussions similaires

  1. [MySQL] Problème d'encodage avec %
    Par jop217 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/03/2007, 16h43
  2. Réponses: 4
    Dernier message: 02/03/2007, 23h33
  3. Problème d'encodage avec MyODBC
    Par stack dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2006, 13h11
  4. [Mail] Problème d'encodage avec phpmailer
    Par catmary dans le forum Langage
    Réponses: 8
    Dernier message: 29/06/2006, 11h56
  5. Problème d'encodage avec Python
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 2
    Dernier message: 22/02/2006, 15h36

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