Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3107 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1913263
olive127
Briseur de fonction d'onde
Posté le 10-08-2009 à 09:26:35  profilanswer
 

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 :(

mood
Publicité
Posté le 10-08-2009 à 09:26:35  profilanswer
 

n°1913283
boit_du_ca​fe
Posté le 10-08-2009 à 10:10:01  profilanswer
 

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
n°1913289
olive127
Briseur de fonction d'onde
Posté le 10-08-2009 à 10:19:21  profilanswer
 

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...
:(


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

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

 

Sujets relatifs
afficher infos autre pageRécuperer des informations xml contenu dans le même fichier php
Récupérer les infos d'un SELECT Multiple (form HTML) en PHP ?[VBA]ouvrir un page internet et inscrire un code pour ouvrir undossier
generer du HTML a partir de la page aspxrecuperer gif sur internet avec webrequest
Récupérer dernier enregistrement : performances[VBA] Comment récupérer des propriétés avec BuiltinDocumentProperties
expression reguliere : recuperer lien internetRécupérer nombre dans un tableau
Plus de sujets relatifs à : Récupérer une page en iso-8859-1, je deviens fou


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR