Récupérer une page en iso-8859-1, je deviens fou

Récupérer une page en iso-8859-1, je deviens fou - HTML/CSS - Programmation

Marsh Posté le 10-08-2009 à 09:26:35    

Hello,
 
Je galère pour afficher certains caractères d'une page.
Mon code doit etre javascript only et tourner sous IE.
Utilisant l'objet XMLHttpRequest, d'après ce que j'ai lu dans mes recherches, il renvoie les données en utf-8, donc je pense avoir un problème de conversion  iso-8859-1/utf-8.
 
Voici mon code:
 

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
  4. <script type="text/javascript" language="javascript">
  5. function loadXMLDoc(url)
  6. {
  7. xmlhttp=null;
  8. if (window.XMLHttpRequest)
  9. {
  10.  xmlhttp=new XMLHttpRequest();
  11. }
  12. else if (window.ActiveXObject)
  13. {
  14.  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP" );
  15. }
  16. if (xmlhttp!=null)
  17. {
  18.  xmlhttp.onreadystatechange=state_Change;
  19.  xmlhttp.open("GET",url,true);
  20.  xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=iso-8859-1" );
  21.  xmlhttp.setRequestHeader("Connection", "close" );
  22.  xmlhttp.send(null);
  23. }
  24. else
  25. {
  26.  alert("Your browser does not support XMLHTTP." );
  27. }
  28. }
  29. function getPage()
  30. {
  31. loadXMLDoc("http://ricosurf.globo.com/condicoesdomarpraias.asp?CodPraia=112" );
  32. }
  33. function state_Change()
  34. {
  35. try
  36. {
  37.  if (xmlhttp.readyState==4)
  38.  {
  39.   if (xmlhttp.status==200)
  40.   {
  41.    var info = "";
  42.    html = xmlhttp.responseText;
  43.    searchedStr1 = new RegExp(/<b>(.*)<br\/>/gi);
  44.    while (searchedStr1.test(html))
  45.    with (RegExp)
  46.     info = info + (RegExp.$1.replace('"',''));
  47.    document.getElementById('txt').value=info;
  48.   }
  49.  }
  50. }
  51. catch(e) {alert(e.message);}
  52. }
  53. </script>
  54. </head>
  55. <body onload="getPage();">
  56.           <div align="left">
  57.   <textarea id="txt" cols="100" rows="15" style="overflow:auto">
  58.   </textarea>
  59.           </div>
  60. </body>
  61. </html>


 
qui me donne:

Code :
  1. 1? Boletim:</b> 05/08/09 - 09h00
  2. Tamanho:</b> 1,0 metro
  3. Ondula?:</b> Sudeste
  4. Vento:</b> Sem vento
  5. Tempo:</b> Ensolarado
  6. Temp. ?ua:</b> 19?
  7. Roupa Ideal:</b> Short John
  8. Lua:</b> Crescente
  9. Forma?:</b> Boa
  10. Condi?s:</b> Ondas demorando um pouco e cheias mas a forma? est?oa. Melhores Picos: Itarar? Divisa.


 
au lieu de:
 

Code :
  1. 1º Boletim:</b> 05/08/09 - 09h00
  2. Tamanho:</b> 1,0 metro
  3. Ondulação:</b> Sudeste
  4. Vento:</b> Sem vento
  5. Tempo:</b> Ensolarado
  6. Temp. Água:</b> 19°
  7. Roupa Ideal:</b> Short John
  8. Lua:</b> Crescente
  9. Formação:</b> Boa
  10. Condições:</b> Ondas demorando um pouco e cheias mas a formação está boa. Melhores Picos: Itararé e Divisa
  11. Atualização:</b> Segunda à Sábado


 
J'ai essayé de spécifier le charset en utf-8 dans le requestheader, dans ma page html mais ça ne change rien. J'ai aussi essayé pas mal de fonctions pour convertir, mais rien ne marche.
 
Merci d'avance car je commence à désespérer :(

Reply

Marsh Posté le 10-08-2009 à 09:26:35   

Reply

Marsh Posté le 10-08-2009 à 10:10:01    

Il m'est arrivé la même chose avant-hier sur l'affichage de caractères mais en UTF-8 et pas en iso-8859-1.

 

J'ai essayé les encode/decode_utf8, préciser le charset sur la page de traitement où mon objet xmlhttprequest allait, préciser le charset dans le header au moment d'appeler ma page, vérifier que les données qui étaient en base de données étaient en UTF8, tout était bien réglé mais ça ne m'affichait pas correctement les caractères :/

 

J'ai précisé l'encodage des caractères qui sont renvoyés après une requête SQL en modifiant cette variable mysql (dans la page qui était appelée par xmlHTTPrequest et où j'avais mon traitement):

 

mysql_query("SET character_set_results = 'UTF8'" );

 

et j'avais enfin mon UTF-8 après :-) Etrange alors que ma base est bien en UTF-8 sur les tables où je récupérais mes infos  [:cerveau paysan]

 

Donc bon tu peux modifier l'encodage des caractères renvoyés après ta requête avec cette variable. Si ça a marché pour l'UTF8 pourquoi pas l'iso-8859-1 ?!

 

Pour les détails sur ce type de variables :
http://ftp.twaren.net/Unix/Databas [...] ction.html


Message édité par boit_du_cafe le 10-08-2009 à 10:12:21
Reply

Marsh Posté le 10-08-2009 à 10:19:21    

Bonjour et merci pour ta réponse, mais le problème c'est que je ne suis pas admin du site ricosurf.globo.com donc je ne peux rien changer côté serveur, mysql ou asp.
Je souhaite juste récupérer une page de ce site, en utilisant javascript.
J'étais loin de m'imaginer que j'allais galérer autant pour afficher ces accents et autres caractères...
:(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed