Accents dans un script

GanJasTeR Messages postés 27 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 31 mai 2007 - 17 mars 2006 à 14:27
Micsans42 Messages postés 1 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 19 mars 2006 - 19 mars 2006 à 22:41
Bonjour à tous.

Voila un ami m'a passé un script permettant de ne pas recharger une page en cliquant sur un lien. Ce script permet de charger le contenu d'une page dans une div définie dans le script. Seulement les caractères spéciaux et les accents s'affiche comme des ?
J'aimerais savoir quelles modification il faudrait apporter afin de corriger ce bug.
Voici toute la balise <head> :

<head>
<NOSCRIPT>
<meta http-equiv="refresh" content="0;URL=http://127.0.0.1/nojavascript.html">
</NOSCRIPT>
<script type="text/javascript">

function writediv(div, texte)
{
document.getElementById(div).innerHTML = texte;
}

function chargerpage(page)
{
if(page != '')
{
page_contenu = file(page);
writediv('page', page_contenu);
}
}

function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
</script>
<meta content="text/html; charset=iso-8859-1" http-equiv="content-type" />
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<link rel="stylesheet" media="screen" type="text/css" title="Virtual-Pixel" href="pixel.css" />
<title>Virtual-Pixel</title>
</head>

Merci

1 réponse

Micsans42 Messages postés 1 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 19 mars 2006
19 mars 2006 à 22:41
Bonsoir,

Tu peux essayer de convertir les caractères accentués (Latins, je suppose) par leur équivalent dont tu trouveras la liste exhaustive à l'adresse:
http://www.cwru.edu/help/interHTML/examples/isolist0.html
J'ai écris une fonction de traduction très simple en PHP. Il faut déclarer 2 variables array et la fonction str_replace.
A toi de faire la même chose en JS ça ne doit pas poser de problème majeur.
NB: dans mes variables, j'ai limité aux caractères les plus utilisés et en minuscule.

Micke

--------------------------------------------------------------------------------------
$Caract = array("&agrave;",
"&aacute;",
"&acirc;",
"&atilde;",
"&auml;",
"&aring;",
"&aelig;",
"&ccedil;",
"&egrave;",
"&eacute;",
"&ecirc;",
"&euml;",
"&igrave;",
"&iacute;",
"&icirc;",
"&iuml;",
"&eth;",
"&ntilde;",
"&ograve;",
"&oacute;",
"&ocirc;",
"&otilde;",
"&ouml;",
"&oslash;",
"&ugrave;",
"&uacute;",
"&ucirc;",
"&uuml;",
"&yacute;",
"&thorn;",
"&yuml;",
" ");

$Accents = array("à",
"á",
"â",
"ã",
"ä",
"å",
"æ",
"ç",
"è",
"é",
"ê",
"ë",
"ì",
"í",
"î",
"ï",
"ð",
"ñ",
"ò",
"ó",
"ô",
"õ",
"ö",
"ø",
"ù",
"ú",
"û",
"ü",
"ý",
"þ",
"ÿ",
"+:+");

// Suppression des espaces et remplacement des caractères accentués pour enoi en HTTP, et remplaceùent des espaces par la chaîne "+:+"
// str_replace ( mixed search, mixed replace, mixed subject)
echo str_replace ($Accents , $Caract , $Liste);
0
Rejoignez-nous