Retour d'une requête AJAX
Bonjour,
J'ai un problème d'encodage avec le retour d'une requête AJAX. Je fait une requête sur une page HTML ayant comme charset : ISO-8859-1. Et quand j'affiche le contenu de la réponse : les caractères accentués sont remplacés par des �. Normalement les � sont affichés quand le fichier est en ISO-8859-1, mais le navigateur l'affiche comme de l'UTF-8. N'étant pas le propriétaire de la page HTML, je ne peux pas changer l'encodage de celle-ci.
La solution me semblait simple : convertir la chaine de caractères de l'ISO-8859-1 vers l'UTF-8. J'ai essayé unescape(encodeURIComponent(s)), mais les accents sont remplacés par � (pour le é). J'ai ensuite testé les fonctions : Utf8.encode(), UTF8.encode() et utf8_encode() ; sans résultat. :?
Voici un UserScript qui montre mon problème.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| // ==UserScript==
// @name Isoutf
// @include http://www.kraland.org/
// @require http://code.jquery.com/jquery-2.0.3.min.js
// ==/UserScript==
$.get('http://www.kraland.org/main.php?p=5', function(data) {
var src = $('.forum-c1:first td:first p:eq(1)', data).html();
dest = src;
// dest = unescape(encodeURIComponent(src));
$('body').html(dest);
}); |
Après ces différents tests, la conversion ISO-8859-1 vers l'UTF-8 n'est peut-être pas la solution. Mais dans ce cas, je ne vois pas d'où peut venir l'erreur.