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:
System.out.println("param = "+maChaine+" longueur: "+maChaine.length());
quand à tidy, essaie plutot ceci:
1 2 3
| StringWriter sw = new StringWriter();
tidy.parse(new StringReader(maChaine), sw);
System.out.println(sw.toString()); |
Partager