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.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); });
Partager