Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

HELP javascript utf-8

2 réponses
Avatar
twigster
Bonjour,

j'ai un soucis avec les caractères accentués en utf-8 avec Safari ou
Firefox.

Je récupère la réponse d'une XMLHttpRequest et selon que j'utilise
safari ou firefox j'ai ou j'ai pas un bon affichage des accents.

Pour avoir une illustration voici ci-dessous un exemple :
(avec le code ci dessous, on récupère bien un "é" avec safari mais pas
avec firefox pour lequel je dois ajouter un utf8_encode...)
RQ : les fichiers sont encodés en utf8...

merci d'avance
je craque...

// index.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<title>untitled</title>

</head>

<body>

<script type="text/javascript" charset="utf-8">

function search() {
var xmlHttp;
if (window.ActiveXObject) xmlHttp = new
ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest();
else { alert('JavaScript error : problem with XMLHttpRequest
objects ...'); return;}
var url = "action.php";
xmlHttp.open("GET", url, false);
xmlHttp.send(null);
if (xmlHttp.readyState == 4) { print(xmlHttp.responseText) }
}

function print (response) {
alert(response);
}

search();

</script>


</body>
</html>

-----------------------------------------------------
// action.php

<?php

echo "é";
// ou bien
//echo ut8_encode("é");

?>

2 réponses

Avatar
twigster
correction :

(avec le code ci dessous, on récupère bien un "é" avec firefox mais pas
avec safari pour lequel je dois ajouter un utf8_decode...)

et non pas :

(avec le code ci dessous, on récupère bien un "é" avec safari mais pas
avec firefox pour lequel je dois ajouter un utf8_encode...)
Avatar
ASM

(avec le code ci dessous, on récupère bien un "é" avec safari mais pas
avec firefox pour lequel je dois ajouter un utf8_encode...)


Oui, en effet, voir ce que j'en dis ici :
http://stephane.moriaux.perso.orange.fr/truc/HttpRequest/
menu : encodage

En effet Orange pour les sites 'pages perso' n'envoyant pas de charset
d'encodage dans ses headers, seul le meta tag permet d'indiquer
l'encodage de la page.
Si ce meta suffit à FireFox, il semblerait que ce ne soit pas le cas
pour Safari. J'use donc d'un artifice pour inclure ce charset aux
fichiers inclus destinés à Safari.

--
Stephane Moriaux et son [moins] vieux Mac