Problème Unicode avec un titre HTML, un point d’interrogation? 65533;

J’essaie d’parsingr le titre de la page Web suivante: http://kid37.blogger.de/stories/1670573/

Lorsque j’utilise la méthode apache.commons.lang SsortingngEscapeUtils.escapeHTML sur l’élément title, le message suivant s’affiche:

Das hermetische Caf�: Rock & Wrestling 2010 

Cependant, lorsque je l’affiche dans ma page Web avec le codage UTF-8, il affiche uniquement un point d’interrogation.

En utilisant le code suivant:

 Ssortingng title = SsortingngEscapeUtils.escapeHtml(myTitle); 

Si je lance le titre sur ce site Web: http://tools.devshed.com/?option=com_mechtools&tool=27 j’obtiens le résultat suivant qui semble correct

TITRE:

 Das hermetische Café: Rock & Wrestling 2010 

DEVIENT (ce à quoi je m’attendais de la méthode escapeHtml):

 Das hermetische Café: Rock & Wrestling 2010 

des idées? Merci

U + FFFD (décimal 65533) est le “caractère de remplacement”. Lorsqu’un décodeur rencontre une séquence d’octets non valide, il peut (selon sa configuration) remplacer sequence par la séquence corrompue et continuer.

Une raison courante pour une séquence “corrompue” est que le mauvais décodeur a été appliqué. Par exemple, le décodeur peut être UTF-8, mais la page est codée ISO-8859-1 (la valeur par défaut si aucune autre n’est spécifiée dans l’en-tête de type de contenu ou son équivalent).

Ainsi, avant même que vous passiez la chaîne à escapeHtml , le “é” a déjà été remplacé par ” “; la méthode le code correctement.

La page en question utilise le codage ISO-8859-1. Assurez-vous que vous utilisez ce décodeur lors de la conversion de la ressource extraite en Ssortingng .