Utilisateur:Pixeltoo/encodage des caractères en HTML

Un article de Wikipédia, l'encyclopédie libre.

HTML est utilisé depuis 1991, mais HTML 4.0 (décembre 1997) est la première version standardisée avec un traitement complet rationnel des caractères internationaux. Lorsqu'un document HTML comprend des caractères spéciaux situés en dehors de la plage de caractères ASCII 7-bits deux critère valent la peine d'être considérer : l'intégrité de l'information, et l'affichage universel du navigateur.

Quand des documents HTML sont transmis il existe trois façons d'indiquer au navigateur quel encodage de caractères doit être utilisé pour l'affichage. D'abord, l'entête HTTP peut être envoyée par le serveur avec chacune des pages web (document HTML). Une entête HTTP ressemble généralement à cela :

Content-Type: text/html; charset=ISO-8859-1

Pour le HTML (rarement XHTML), l'autre méthode consiste à inclure cette information tout en haut du document HTML, à l'intérieur de l'élément HEAD.

<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">

Les documents XHTML ont une troisième méthode : pour indiquer l'encodage dans le préambule XML, par exemple

<?xml version="1.0" encoding="ISO-8859-1"?>

Chacune de ces méthodes avertit le destinataire que le fichier envoyé utilise l'encodage spécifié. L'encodage des caractères est généralement appelé jeu de caractère et il doit en effet définir les caractères dans le texte brut. Toutefois, la norme HTML déclare que le jeu de caractères doit être traité comme un encodage de caractères Unicode et fournit une façon de définir des caractères que le jeu de caractère ne couvre pas. Le terme page de code est utilisé de façon similaire.

Il est plutôt déconseiller d'envoyer une information incorrecte à propos de l'encodage des caractères utilisé par le document. Par exemple, un serveur où de multiples utilisateurs placeraient des fichiers créés sur différentes machines ne pourrait assuré que tous les fichiers qu'il envoie soient conformes au spécification du serveur — certains utilisateurs pourraient avoir différents jeux de caractères. C'est la raison pour laquelle, beaucoup de serveurs n'envoient pas l'information, évitant ainsi de faire de fausses promesses. Toutefois, ceci pourrait provoquer une situation tout aussi mauvaise où le navigateur affiche le document de façon incorrecte du fait qu'aucun expéditeur n'a spécifié d'encodage de caractère.

La spécification concernant l'entête HTTP a la priorité sur toutes spécifications provenant des balises meta, ce qui peut être un problème si l'entête est incorrecte et qu'on n'a pas le droit ou les connaissances pour le modifier.

Les navigateurs recevant un fichier sans encodage des caractères doit faire une supposition aveugle. Pour les langues d'Europe de l'Ouest,

Autres langues