Prob avec DOCTYPE et <?xml version="1.0" enco

Résolu/Fermé
midnnight Messages postés 484 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 26 juillet 2017 - 5 juin 2010 à 15:56
 midnnight - 16 sept. 2012 à 23:49
Bonjour,

Je bloque un peu, car quand je mets mon DOCTYPE :
<!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">

Mon site apparait, mais évidemment les accents ne sont pas interprétés, imprimant des carrés à la place d'un "é" ou d'un "à" par exemple...

Toutefois, si j'ajoute :
<?xml version="1.0" encoding="windows-1252"?>
Ou même :
<?xml version="1.0" encoding="UTF-8"?>
là le serveur me répond :
"Parse error: syntax error, unexpected T_STRING in /space/nas00/pro/http/sites..."

Je peux évidemment sûrement réécrire tout le site avec des "é" "à" etc... Mais je voudrais bien éviter ça...
Avez vous la solution svp
par avance merci de votre aide...

A voir également:

8 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
8 juin 2010 à 16:39
C'est à mettre au tout début du fichier.
Si ça ne fonctionne pas, c'est que le fichier n'est pas enregistrer dans l'encodage que tu donnes.
Réenregistre-le correctement en UTF-8, et utilise la balise meta que je t'ai donné plus haut (à mettre dans le head de ta page).
1
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
5 juin 2010 à 19:13
Essaye avec cette balise meta :
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Et vérifie que ton fichier soit bien encodé en UTF-8.
0
midnnight Messages postés 484 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 26 juillet 2017 38
Modifié par midnnight le 6/06/2010 à 03:27
Salut et merci avion f16, mais comme ça ça ne fonctionne pas non plus.
(pas d'erreur côté serveur, mais toujours pas d'accents !) :

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<!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="fr">

Ce qui est étrange, c'est que mon fichier est sur le serveur et que mes autres sous domaines n'ont pas ce probleme...
de plus, si je tente une validation w3c, j'optiens cette erreur :
"Error(s) blocking validation"
"Sorry, I am unable to validate this document because on line 226 it contained one or more bytes that I cannot interpret as utf-8 (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication.
The error was: utf8 "\xEA" does not map to Unicode"
Une idée ? please
0
midnnight Messages postés 484 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 26 juillet 2017 38
Modifié par midnnight le 6/06/2010 à 17:03
UP ?!
Personne n'a idée de ce qui ce passe ou ce que je peux faire ?
(pas d'erreur côté serveur, mais toujours pas d'accents !) avec :

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<!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="fr">

???
Si ça venait du serveur, les sous domaines en souffriraient aussi, non ? alors que ce n'est pas le cas...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
midnnight Messages postés 484 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 26 juillet 2017 38
8 juin 2010 à 14:50
Up ?
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
8 juin 2010 à 15:20
Je pense que l'erreur PHP s'affiche parce que la directive « short_open_tag » est activée. Tu peux donc mettre du PHP entre « <? » et « ?> ».

Donc écrire « <?xml version="1.0" encoding="UTF-8"?> » reviendrait à écrire « <?php xml version="1.0" encoding="UTF-8" ?> », ce qui pose problème.

Essaye en désactivant cette directive si ton hébergeur t'y autorise (.htaccess ou php.ini), ou bien en faisant un echo :
<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
0
Merci, mais malheureusement je n'ai pas accès aux .htaccess ou php.ini, j'ai entré comme tu dis :
<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
ce qui donne donc en ligne (dans la source) :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<?xml version="1.0" encoding="UTF-8"?><head>
Mais rien à faire, toujours pas d'acents... J'ai bien peur d'être obligé de me "retaper" toutes les pages avec les entités html=> (é à ê etc...) et y'a un paquet de texte, dur dur...
Le pire c'est qu'un de mes sous domaine fonctionne parfaitement avec ce doctype d'origine :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"html401_loose.dtd">
<html><head>
Etrange, non ?
En fait le site placé en www n'indique pas les acents, mais ce sous domaine lui indique les acents
Un autre sous domaine indique aussi les accents avec ce doctype :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
C'est de la follie, non ?
L'erreur doit être dans le répertoire www... Mais où et pourquoi...(???)
(J'ai rergardé via "filezilla" si je trouvais un fichier malin, je n'ai rien vu...)
0
momkihon
0
midnnight Messages postés 484 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 26 juillet 2017 38
8 juin 2010 à 17:19
OOOps ! J'avais mis ce code plus bas (dans les balises "meta") et je ne m'en rappelais plus=>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Je l'ai enlevé et remis le doctype comme indiqué, + ré-enregistré avec le bloc-note windows sous UTF 8 et ça fonctionne...
Ouf, j'ai eu une petite frayeur !
Merci à toi !
a++
0
midnnight Messages postés 484 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 26 juillet 2017 38
8 juin 2010 à 17:23
Euh, si tu sais, pourquoi j'ai maintenant cette erreur W3C ??
Validation Output: 1 Error
Line 5, Column 5: XML declaration allowed only at the start of the document
<?xml version="1.0" encoding="UTF-8"?>...
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
8 juin 2010 à 17:26
C'est le caractère BOM qui gène.
Pour le virer, tu peux utiliser Notepad++ et change le format en « UTF-8 sans BOM ».
0
midnnight Messages postés 484 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 26 juillet 2017 38
8 juin 2010 à 17:31
Ok, merci...
0
midnnight Messages postés 484 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 26 juillet 2017 38
8 juin 2010 à 17:47
B'in jai été dans notepad++, paramétrage=>préférences=>Nouveau document, j'ai coché : "UTF-8 sans BOM" j'ai ré-enregistré mon fichier comme ça, à l'upload 'filezilla' me dit qu'il remplace le fichier de 6 736 octets par le nouveau de 6 733 octets, donc 3 octets en moins effectivement; mais toujours l'erreur... Etrange...
0
oui
0