Comment s'assurer du rendu des accents sur les navigateurs récents ?
Pourquoi Internet Explorer 6.0.2900.2180 se refuse-t-il à éditer les accents sur cette page de test ?

1 / - Précisons que cette page commence comme suit (sur le serveur) :

<?php
	header("Content-Type: text/html; charset=ISO-8859-1");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
...(voir le source) 


2 / -qu'elle appelle la page suivante :

<?php
	header("Content-Type: text/html; charset=ISO-8859-1");

	if (!empty($HTTP_GET_VARS["dat"]) && 0<($d=$HTTP_GET_VARS["dat"]) )
		$d="En ".$HTTP_GET_VARS["dat"].", il n'était déjà pas ";
	else $d="Actuellement, il n'est pas ";

	echo "<p>$d aisé d'éditer des lettres accentuées ! </p><p class='rgh'>à suivre...</p>XXXX";
	
?>

3 / - et que ces deux pages sont enregistrées en ANSI ou iso-8859-1.

Curieusement, le dit navigateur affiche les accents, en lui envoyant de l'utf8, avec simplement un
a écrit :
utf8_encode("la dernière chaîne")
? Autrement dit, il semble bien qu'il décode inutilement ... À quel moment ? Pourquoi ?

NB : Notez au passage les HTTP_GET_VARS résultant d'un version préhistorique de PHP chez alice et, en outre, la nécessité de supprimer les ajouts de l'hébergeur (scripts qui interdisent la publication d'une page valide) lors de l'utilisation d'Ajax !
Attention les ActiveXObject ne sont pas équivalents lorsque XMLHHTTPRequest n'est pas disponible dans Intenet Explorer !

En effet, les difficultés rencontrées avec Internet Explorer 6 disparaissent en adoptant, non plus Jquery qui utilise de préfèrence Microsoft.XMLHTTP (lignes 2601 à 3 de la version 1.2.3), mais le script de Peter Paul Koch faisant appel aux différents objets dans un ordre différent.
Extrait du code de JQuery 1.2.3 (lignes 2601 à 2603)
// Create the request object; Microsoft failed to properly
// implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
var xml = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();

L'ordre de préférence préconisé par PPK est définit dans l'objet XMLHttpFactories défini comme suit :
var XMLHttpFactories = [
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];
Or, l'expérience montre que sur IE 6.0.2900.2180 (quid des autres versions?), Microsoft.XMLHTTP édite bien, quel que soit le codage des pages d'appel, les inserts en utf-8, sans se soucier d'éventuelles déclaration de charset en PHP sur celles-ci, tandis que Msxml2.XMLHTTP, plus respectueux des charsets des inserts, édite correctement ceux-ci, y compris en iso-8859-1, pourvu que leurs charsets soient précisés.

L'utilisation d'Ajax serait-alors, contrairement à bien des affirmations sur la toile, possible avec d'autres encodages que l'utf-8 ?. Ce serait fort heureux tant que les traitements des chaînes de caractères en utf-8 restent laborieux avec les versions disponibles de PHP...
Hello,

N'étant pas développeur certaines subtilités me passent au dessus de la tête, mais merci de partager ces informations qui seront sans doute utiles à d'autres. Smiley smile