Exercices xHTML : la base

Affichage d'une page xHTML

Écrire une page xHTML 1.1 qui affiche :

Fichier à produire  :

<!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" xml:lang="fr">
  <head>
  <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
  <title>Page en xHTML 1.1 Strict et encodage caractères en UTF-8</title>
</head>
<body>
 
<h1>Page en xHTML 1.1 Strict et encodage caractères en UTF-8</h1>
 
<p>ceci est le corps de mon document<br />
c'est du xHTML1.1 strict avec encodage de caractères précisé en unicode UTF-8</p>
 
<p>C'est la bonne pratique du WEB moderne,<br />
En contre partie je devrais</p>
<ul>
    <li>Écrire les balises en lettres minuscules,</li>
    <li>respecter la casse sur les attributs des balises,</li>
    <li>fermer toutes les balises y compris celles qui n'ont pas de contenu,</li>
</ul>
 
<p>Ces contraintes ne sont pas énormes et <strong>respecter la norme est un point important</strong>.<br />
Désormais je ferai en sorte de respecter cette norme. La liste des balises et attributs ainsi que le contexte d'utilisation
est disponible sur <a href="http://giminik.developpez.com/xhtml/html.html">ce site</a>. je m'y rendrai à chaque fois que j'aurai un doute.
De plus pour m'assurer de la qualité des pages générées, je les validerai systématiquement sur le
<a href="http://validator.w3.org/check">site du W3C</a>.</p>
 
<p><a href="http://validator.w3.org/check?uri=referer">page xHTML validé !</a></p>
</body>
</html>
voir le résultat

Comportement d'un texte écrit en UTF-8 affiché ISO-8859-15

À partir de la structure de la page de l'exercice précédent écrivez une page xHTML utilisant un autre type d'encodage :

Au chargement de la page que remarquons nous ?

Fichier à produire  :

<!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" xml:lang="fr">
 <head>
 <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-15" />
 <title>Test d'erreur d'encodage UTF-8 ISO-8859-15.</title>
</head>
<body>
 
 <h1>Test d'erreur d'encodage UTF-8 vers ISO8859-15.</h1>
  <h2>Dans ce test le texte est produit en <em>UTF-8</em> et est visualis&eacute; en <em>ISO8859-15</em>.</h2>
  <p>Voici une lettre <samp>&eacute;</samp>&nbsp;: <samp>é</samp>.</p>
  <p>Voici une lettre <samp>&OElig;</samp>&nbsp;: <samp>Å’</samp>.</p>
 <h2>Pas beau le &eacute;</h2>
 
 <p><a href="http://validator.w3.org/check?uri=referer">page xHTML valide&nbsp;!</a></p>
</body>
</html>

réponse

Les caractères accentués sont représentés sous forme de plusieurs caractères : é devient é,
les entités HTML sont préservées.

voir le résultat

Comportement d'un texte écrit en ISO-8859-15 affiché UTF-8

À partir de l'exercice précedent écrivez une page xHTML semblable ecxepté sur le type d'encodage :

Au chargement de la page que remarqons-nous ?

La solution présentée ici aboutit à une page qui nest pas valide car elle contient des caractères UTF-8 erronés.

Fichier à produire  :

<!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" xml:lang="fr">
  <head>
  <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
  <title>Test d'erreur d'encodage ISO-8859-15 vers UTF-8</title>
</head>
<body>
 
  <h1>Test d'erreur d'encodage  <em>ISO-8859-15</em>/<em>UTF-8</em>.</h1>
  <h2>Dans ce test le texte est produit en <em>ISO-8859-15</em> et est visualis&eacute; en <em>UTF-8</em>.</h1>
  <p>Voici une lettre <samp>&Eacute;</samp>&nbsp;: <samp>É</samp>.</p>
  <p>Voici une lettre <samp>&OElig;</samp>&nbsp;: <samp>¼</samp>.</p>
  <h2>Pas beaux le <em>&eacute;</em> et le <em>&OElig;</em></h2>
 <p><a href="http://validator.w3.org/check?uri=referer">cette page xHTML devrait &ecirc;tre invalide&nbsp;!</a></p>
</body>
</html>

réponse

Les caractères accentués sont représentés sous forme de losange avec un ? : é devient ,
les entités HTML sont préservées.

voir le résultat

configuration du serveur en UTF-8

Il faut que l'entête Content-Type: text/html; charset=utf-8 soit envoyée,
pour cela on peut agir :

Comment agir sur le serveur web en cas de problème d'encodage UTF-8 ?

Affichage de caractères spéciaux

Écrire un page xHTML contenant les caractères spéciaux faisant partie de la syntaxe XML :

Écrire également quelques caractères spéciaux sous forme d'entités HTML :

pourquoi les caractères <, > et & doivent impérativement être écrits ainsi pour pouvoir s'afficher correctement ?

Fichier à produire  :

<!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" xml:lang="fr">
  <head>
  <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
  <title>Encodage des caractères spéciaux.</title>
</head>
<body>
 
<h1>Encodage des caractères spéciaux</h1>
<p>Je dois utiliser les caractères spéciaux &amp;nom_entité; pour écrire un caractère sans qu'il ne soit interprété
comme élément de syntaxe du <acronym xml:lang="en" title="Hyper Text Markup Language">HTML</acronym>.</p>
 
<p>quelques caractères spéciaux :<br />
inférieur : &lt;<br />
supérieur : &gt;<br />
et commercial: &amp;<br />
PI (lettre grecque utilisée en maths) : &pi;<br />
etc...
</p>
 
<p>Je peux utiliser les caractères spéciaux &amp;nom_entité; pour écrire un caractère accentué afin qu'il soit interprété
sans tenir compte de l'encodage des caractères.</p>
 
<p>quelques caractères accentués :<br />
e accent aigu : &eacute; = é<br />
A accent grave : &Agrave; = À<br />
i tréma : &iuml; = ï<br />
o accent circonflexe : &ocirc; = ô<br />
u accent circonflexe : &ucirc; = û<br />
o e dans l'o :&oelig; = Å“<br />
a e dans l'a :&aelig; = æ</p>
 
<p><a href="http://validator.w3.org/check?uri=referer">page xHTML validé !</a></p>
</body>
</html>

réponse

car comme ceci est dit dans l'énoncé, ils font partie de la syntaxe du langage.

voir le résultat
pages validées par Valid XHTML 1.1 CSS validé !