[JS] Encodage des lettres latine

Encodage des lettres latine [JS] - HTML/CSS - Programmation

Marsh Posté le 19-05-2006 à 16:09:56    

Hello,
voilà j'ai fait un petit script en JS qui utilise l'objet XMLHTTPRequest. En fonction d'une action sur une page je vais charger tel ou tel fichier sur la page en utilisant cet objet.
Mon problème est simple mais je n'ai toujours past trouvé la solution qui est forcément évidente puisque tout le monde faisant ceci est confronté à ce problème.
 
Enfin bref, le souci c'est que le texte qui est retourné par mon objet XMLHTTPRequest n'est pas propre : l'encodage des caractère latin ne marche pas. Faut il ajouter un "setRequestHeader"? Et si oui lequel.
Par exemple si mon objet XMLHTTPRequest renvoi le mot "passé" alors il affichera "pass�".
 
Le code JS :
 
getXHR : pour configurer l'objet en fonction du navigateur :

Code :
  1. function getXhr()
  2. {
  3.      if(window.XMLHttpRequest) // Firefox & other browser
  4.         xhr = new XMLHttpRequest();
  5.      else if(window.ActiveXObject)
  6.      { // Internet Explorer
  7.         try
  8.         {
  9.              xhr = new ActiveXObject("Msxml2.XMLHTTP" );
  10.         }
  11.         catch (e)
  12.         {
  13.              xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  14.         }
  15.      }
  16.      else
  17.      { // XMLHttpRequest not supported by the browser
  18.         alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  19.         xhr = false;
  20.      }
  21. }


 
Et voici ma fonction qui utilise cet objet

Code :
  1. var ie=document.all;
  2. var other=document.getElementById&&!document.all;
  3. var divName = 'Nomdemadiv';
  4. //numStep -> contient un numéro vu que j'utilise x div ayant pour nom divName+un numéro
  5. //File -> le fichier dans lequel on va chercher le texte
  6. //Param -> des paramètre que l'ont peut donner au fichier (file)
  7. function go( numStep, file, param )
  8. {
  9.      //Initialisation of the XMLHttpRequest Object
  10.      getXhr() ;
  11.      // We setup what we do when we will have the answer
  12.      xhr.onreadystatechange = function()
  13.      {
  14.              // If we have receive the data and if the server is ok then
  15.              if(xhr.readyState == 4 && xhr.status == 200)
  16.              {
  17.                      // We put the text receive in the div
  18.                      if ( ie )
  19.                      {
  20.                              document.all[ divName+ numStep ].innerHTML = xhr.responseText ;
  21.                      }
  22.                      else if ( other )
  23.                      {
  24.                              document.getElementById( divName + numStep ).innerHTML = xhr.responseText ;
  25.                      }
  26.              }
  27.      }
  28.      xhr.open('GET',file+param,true);
  29.      xhr.send(null);
  30. }


Message édité par Spir le 19-05-2006 à 16:11:45
Reply

Marsh Posté le 19-05-2006 à 16:09:56   

Reply

Marsh Posté le 19-05-2006 à 16:15:41    

Reply

Marsh Posté le 19-05-2006 à 16:17:05    

Ouais ouais. Mais le souci c'est que je ne travail pas en UTF-8 et j'ai pas envie de le faire maintenant, je suis trop avancé dans le projet.
Es ce que l'utilisation de utf8_decode va pouvoir m'aider???
 
http://de.php.net/utf8_decode
 
En fait il faut que je fasse l'inverse de cette méthode avant que le js s'exécute. C'est à dire qu'il faut que le text que le JS va trouver doit etre encoder en utf-8. N'es ce pas?


Message édité par Spir le 19-05-2006 à 16:19:44
Reply

Marsh Posté le 19-05-2006 à 16:20:07    

utilise escape() côté client et URLDecoder.decode(requestParameter, "ISO-8859-1" ) côté serveur (Java).


---------------
London Box Office: Comédie Musicale Londres
Reply

Marsh Posté le 19-05-2006 à 16:22:26    

Reply

Marsh Posté le 29-06-2006 à 17:05:32    

le bug venait du serveur... Et non pas du navigateur!

Reply

Sujets relatifs:

Leave a Replay

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