OVH Cloud OVH Cloud

charset et validation

6 réponses
Avatar
collinm
salut

lorsque je vais sur: http://www.validome.org/ pour valider la page
ci-dessous
http://www.laboiteaprog.com/livre5

j'ai: Ce document est valide
XHTML 1.0 Strict

mais on m'avise

"Ce document XHTML 1.0 a =E9t=E9 soumis avec le type MIME text/html, ceci
n'est cependant autoris=E9 que lorsqu'il correspond aux directives pour
HTML.
Aucun encodage n'a =E9t=E9 trouv=E9. C'est la raison pour laquelle il a
=E9t=E9 fait recours =E0 UTF-8."

pourtant en d=E9but de fichier j'ai:

"<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"fr" xml:lang=3D"fr">
<head>
<title>Livre de Linux - La bo=EEte =E0 prog</title>
<link rel=3D"stylesheet" type=3D"text/css" href=3D"screen.css"
media=3D"screen" title=3D"Normal"/>
<meta http-equiv=3D"Content-Language" content=3D"fr" />
<meta http-equiv=3D"Content-type" content=3D"text/html;
charset=3Dutf-8" />
<meta name=3D"revisit-after" content=3D"5 days"/>

<meta name=3D"robots" content=3D"all"/>
<meta name=3D"description" content=3D"Site web ..."/>
<meta name=3D"Keywords" content=3D"Critique de livre..." />
</head>"

une id=E9e?

merci

6 réponses

Avatar
Pierre Goiffon
collinm wrote:
lorsque je vais sur: http://www.validome.org/ pour valider la page
ci-dessous
http://www.laboiteaprog.com/livre5

j'ai: Ce document est valide
XHTML 1.0 Strict

mais on m'avise

"Ce document XHTML 1.0 a été soumis avec le type MIME text/html



C'est un simple warning.
Du XHTML devrait en toute théorie être servit avec un type MIME XML.
Pour des raisons de compatibilité, du XHTML 1.0 peut être servit comme
du HTML... A condition de respecter les directives de l'annexe C de la
recommandation XHTML 1.0.

Voir, du côté de la recommandation :
http://www.w3.org/TR/xhtml1/#media

Et surtout, concernant les problèmes rencontrés sur du XHTML servit en
text/html :
http://www.hixie.ch/advocacy/xhtml

Aucun encodage n'a été trouvé. C'est la raison pour laquelle il a
été fait recours à UTF-8."

pourtant en début de fichier j'ai:


(...)
<meta http-equiv="Content-type" content="text/html;
charset=utf-8" />



Les informations de charset doivent se trouver en priorité dans l'entête
HTTP !! Si l'on souhaite reprendre cette information dans la page
elle-même, en XHTML il faut la faire figurer dans le prologue, et
éventuellement en meta (ssi on sert la page en text/html)

Ces 2 informations que vous semblez ignorer m'amène à penser que vous
avez choisi XHTML pour de mauvaises raisons. Lisez donc :
http://pgoiffon.free.fr/info/inet/html_ou_xhtml.php
Avatar
collinm
Pierre Goiffon a écrit :


Les informations de charset doivent se trouver en priorité dans l'ent ête
HTTP !!



donc c'est au serveur web de le faire...

Si l'on souhaite reprendre cette information dans la page
elle-même, en XHTML il faut la faire figurer dans le prologue, et
éventuellement en meta (ssi on sert la page en text/html)



si je fais:

<?php
function entete($sec_nomsection,$tmp){
echo'<?xml version="1.0" encoding="UTF-8"?>';
?>
j'obtient: La déclaration XML est interdite à cet endroit ; vous
devez la placer au début du document.

j'ai alors tenté

<?php
function entete($sec_nomsection,$tmp){
?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"


mais bon php exécute ce qui entre <? et ?>...

j'ai tenté
<?php
function entete($sec_nomsection,$tmp){
?>
&#60;?xml version="1.0" encoding="UTF-8"?&#62;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN


& ne semble pas accepté dans le prologue

Ces 2 informations que vous semblez ignorer m'amène à penser que vous
avez choisi XHTML pour de mauvaises raisons. Lisez donc :
http://pgoiffon.free.fr/info/inet/html_ou_xhtml.php
Avatar
collinm
j'ai ajouté

header("Content-type: text/html; charset=utf-8");

et ca passe maintenant
Avatar
Xavier Robin
Pierre Goiffon a écrit :
Et surtout, concernant les problèmes rencontrés sur du XHTML servit en
text/html :
http://www.hixie.ch/advocacy/xhtml



Et le même en français : http://www.hixie.ch/advocacy/xhtml.fr
Avatar
ep15SANS
Le 11/01/2006 21:02, collinm a écrit :
Pierre Goiffon a écrit :
Les informations de charset doivent se trouver en priorité dans l'entête
HTTP !!




<snip>
si je fais:


<snip>

<?php //avant le premier caractère envoyé
header('Content-Type: application/xhtml+xml; charset=UTF-8');
// ou
header('Content-Type: text/html; charset=UTF-8');

header('Content-Language:fr;'); //Langue français

echo '<?xml version="1.0" encoding="UTF-8" ?>';
?>

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

etc.

Il faut noter que si le doctype n'est pas sur la première ligne, MSIE6
change de box model.
Et évidement, MSIE6 n'accepte pas 'application/xhtml+xml'.

--
Olivier
- Parce que sinon cela rompt le cours normal de la conversation.
- Pourquoi répond on après la question ?
<http://www.giromini.org/usenet-fr/repondre.html> merci.
Avatar
Pierre Goiffon
Xavier Robin wrote:
http://www.hixie.ch/advocacy/xhtml



Et le même en français : http://www.hixie.ch/advocacy/xhtml.fr



Oh je ne savais pas que le doc avait été traduit ! Merci de l'info !