Points d'interrogations intempestifs dans certains navigateurs

legniarf

Membre confirmé
19 Juin 2006
18
0
Bonjour,

Quand je crée une page html et que je l'ouvre sous certains navigateurs dont IE pour mac 5.1 et 5.2, au début de la page du navigateur un point d'interrogation est ajoutée avant le contenu. Dans le code source ce point d'interrogation est placé avant mon doctype. Mon Doctype est le suivant :

<!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="fr">
<head>
<title>Votre titre</title>
<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
<link rel="stylesheet" type="text/css" href= "styles.css" />
</head>

Si je mets un include() en php dans mon fichier, IE me rajoute un deuxième point d'interrogation dans la page du navigateur. Dans le code source le point d'interrogation est placé au début du contenu du fichier inclus.

Mes fichiers sont enregistrés en UTF-8. IE affiche bien dans le menu "Jeux de caractères" "Alphabet universel (UTF-8)". Si j'enregistre les fichiers en Mac Roman, je n'ai plus de points d'interrogation dans le navigateur.

Mais j'ai besoin de les enregistrer en UTF-8 parce que dans mes pages j'ai du code PHP qui ne marche qu'avec ce format.

Quelqu'un sait-il comment résoudre ce problème ?
 
legniarf a dit:
...
Mais j'ai besoin de les enregistrer en UTF-8 parce que dans mes pages j'ai du code PHP qui ne marche qu'avec ce format...

PHP ne marche pas avec un format particulier... ta base de données par contre oui.;)

Ceci dit et pour en revenir à ta problématique, il n'est pas impossible que IE 5 ne sache lire utf-8. Pour isoler le problème, peux tu faire un essai avec un encodage iso (charset=iso-8859-1) ? ton point d'interrogation est-il toujours là ?
 
J'ai essayé en iso-8859-1 et ça marche. Mais j'ai un code PHP qui transforme les apostrophes français (apostrophes courbés) d'un formulaire en apostrophes anglais (apostrophes droits). J'ai donc un apostrophe français dans mon fichier PHP et je ne peux l'enregistrer qu'en UTF-8.

Je suis étonné que IE ne lise pas l'UTF-8. Voici le code de ma page :

<!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="fr">
<head>
<title>Votre titre</title>
<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
<link rel="stylesheet" type="text/css" href= "styles.css" />
</head>
<body>
hello
</body>
</html>

IE affiche alors :

? hello
 
legniarf a dit:
Je suis étonné que IE ne lise pas l'UTF-8.
Tu crois encore que M$ va permettre qu'on utilise des standards compréhensibles sur toutes les plate-formes :D IE comprend l'ISO-8859-1 car son petit nom est "Windows latin 1".
 
Peut-être, mais sous PC IE ne me met pas de point d'interrogation dans la page quand le fichier est enregistré en UTF-8. D'autre part IE a l'UTF-8 dans sa liste de jeux de caractères. Alors pourquoi ajoute-t-il un point d'interrogation dans la page du navigateur ?
 
Oui mais quelle version de IE sous PC ? Car la version 5 du Mac est quand même une vieillerie. Ensuite il s'agit peut être d'un bug de la version Mac. De toute façon ne t'inquiète pas pour ton site, il ne doit plus y avoir que quelques nostalgiques qui utilisent encore IE sous Mac OSX :D Et pour ceux là je ne peux que les encourager à "switcher" sur Safari ou Firefox, c'est quand même autre chose :D
 
Oui, tu as certainement raison. Mais je pensais surtout aux utilisateurs Mac OS 9 qui ne peuvent utiliser que IE (ou Netscape qui lui interprète correctement l'UTF-8).
 
Pour compléter cette discussion, sachez que ce matin, après avoir installé la dernière version de Firefox sous Mac (Firefox 1.5.0.4), je me suis aperçu que ce navigateur me mettait également des points d'interrogations.

J'ai alors enregistré mes fichiers en "UTF-8, no BOM" et les points d'interrogation n'apparaissent plus, ni sur Firefox, ni sur IE 5.1 .

Par contre IE 5.1 (pour Mac Classic) n'interprète plus mon code CSS. Les utilisateurs Classic n'auront donc pas accès à mon site