xmlHttpRequest et caractères accentués - HTML/CSS - Programmation
Marsh Posté le 21-09-2005 à 00:03:39
encodage différent dans les deux fichiers j'imagines.
Faudrait pouvoir réencoder à l'arrivé en fonction de lk'encodage d'arrivé.
Marsh Posté le 21-09-2005 à 00:24:28
Je cherche justement à faire ça, mais je me demande si setRequestheader sert à qqchose parce que rien n'y fait...
Azer
Marsh Posté le 20-09-2005 à 23:55:32
Bonjour,
Je sais que le sujet a maintes fois été abordé mais je n'ai trouvé aucune solution pour l'instant. Le problème est lié à des caractères spéciaux dans le fichier accédé en xmlHttpRequest. Voici mon cas précis :
- soit le fichier "1.htm" qui contient le code suivant :
<html>
<body>
Test : éè (caractere special !)
</body>
</html>
Je précise que je n'ai pas accès au contenu de ce fichier en modification. Pas moyen, donc, d'encoder le contenu avant de le récupérer via xmlHttpRequest.
- soit le fichier "2.html" qui appelle le 1e avec xmlhttprequest avec le code suivant :
<html>
<head>
<script language="JavaScript">
var req;
function loadXMLDoc(url)
{
req = false;
if(window.XMLHttpRequest)
{
try
{ req = new XMLHttpRequest(); }
catch(e)
{ req = false; }
}
else if(window.ActiveXObject)
{
try
{ req = new ActiveXObject("Msxml2.XMLHTTP" ); }
catch(e)
{
try
{ req = new ActiveXObject("Microsoft.XMLHTTP" ); }
catch(e)
{ req = false; }
}
}
if(req)
{
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded" );
req.send("" );
}
}
function processReqChange()
{
if (req.readyState == 4)
{
alert(req.responseText);
}
}
function start()
{
loadXMLDoc("1.htm" );
}
</script>
</head>
<body onLoad="start();">
</body>
</html>
Le problème est que les caractères accentués sont remplacés par un carré (1 carré pour les 2 caractères ). J'ai essayé plusieurs trucs avec la variable xmlHttpRequest en utilisant POST/GET, setRequestHeader... mais rien n'y fait. Avec le cas ci-dessus vous pouvez facilement reproduire mon erreur.
Pourtant si j'ouvre le fichier "1.htm" directement dans IE cela ne pose aucun problème...
Une idée ?
Azer