Éducation, société et technologie
HTML et XHTML

Jeux de caractères, encodages et entités

Des problèmes avec vos accents dans vos documents HTML ?
lundi 9 janvier 2006 par André Vincent

Les notions d’encodage et de jeu de caractères (souvent désignés sous le même terme anglais de charset) sont des notions fondamentales à bien comprendre dans la production de page web, surtout dans des langues autres que l’anglais.

Encodage et jeu de caractères

Le terme encodage (encoding) désigne la façon dont les caractères dans un ensemble ou un sous-ensemble d’un alphabet donné, sont convertis en octets dans un fichier informatique (et vice-versa). Certaines méthodes d’encodage sont spécifiques à un environnement informatique dans une langue ou un alphabet donné, d’autres sont multiplateformes et multilingues. Exemple d’encodage : ASCII, iso-8859-1, iso-8859-15, utf-8, utf-16, etc.

Le terme jeu de caractères (character set) refère à un ensemble ou un sous-ensemble des caractères (ou glyphes) disponibles dans un jeu de caractère donné. Ainsi, les jeux de caractères ISO Latin 1 - souvent désigné par son encodage : iso-8859-1, ANSI - Windows Latin 1 et Mac OS Roman, bien qu’appartenant tous les trois à l’alphabet latin ne réfèrent qu’à des jeux partiels de caractères de ce même alphabet latin ; de plus, ils ne contiennent pas tous les même caractères. Voir : Differences between ANSI, ISO-8859-1 and MacRoman character sets

Par contre, le jeu de caractères Unicode, lui peut représenter n’importe quel système d’écriture, de n’importe quelle langue dans n’importe quel environnement informatique.

Les encodages les plus courants

Les encodages multiplateformes les plus couramment utilisés dans les pages web sont :

  • iso-8859-1 (méthode d’encodage très limitatif d’un jeu partiel des caractères de l’alphabet latin ISO Latin 1)
  • utf-8 (méthode d’encodage d’un jeu universel de caractères Unicode pour toutes les langues)

Les encodages spécifiques à certains systèmes d’exploitation pour les langues de l’Europe de l’ouest :

  • windows-1252 (méthode d’encodage du jeu partiel des caractères de l’alphabet latin ANSI - ou Windows Latin 1)
  • macintosh (méthode d’encodage du jeu partiel des caractères de l’alphabet latin Mac OS Roman)

Déclaration de l’encodage en (X)HTML

En HTML et XHTML, en présence d’une profusion d’encodages différents des caractères variant selon les systèmes d’exploitation et les langues et afin d’assurer une interpolarité et une interprétation uniforme de ces caractères, il est nécessaire de bien indiquer en tout début de document, le type d’encodage des caractères utilisé dans la page. On l’indique à l’aide de l’élément META, inséré sous cette forme dans l’élément HEAD du document :

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

En XML, on utilisera plutôt la déclaration suivante dès la première ligne du document :

<?xml version="1.0" encoding="utf-8"?>

Remarque : la déclaration XML est ici beaucoup plus précise que la déclaration HTML ; en effet, utf-8 désigne effectivement une méthode d’encodage ( encoding ) plutôt qu’un jeu de caractère ( charset ). Dans notre exemple, le jeu de carctères est : Unicode .

En l’absence d’une telle déclaration en début d’un document HTML, les logiciels de navigation utiliseront un encodage par défaut (généralement iso-8859-1) ou selon les réglages des préférences du logiciel. Pour Firefox, par exemple, voir : Préférences -> Contenu : Polices par défaut -> Avancée... : Encodage par défaut.

L’encodage correct du fichier lors de l’enregistrement

Mais il ne suffit pas d’indiquer le jeu de caractères dans l’élément META. Encore faut-il que le document soit effectivement et correctement enregistré en utilisant l’encodage spécifié. Malheurement tous les éditeurs de texte ou les éditeurs HTML n’offrent pas cette option ou l’ont implémenté de façon incomplète.

Tout éditeur de texte HTML moderne, opérant dans un système d’exploitation moderne doit aujourd’hui nous permettre d’utiliser directement toute la gamme des caractères Unicode et d’enregistrer et d’ouvrir des fichiers encodés en utf-8. Si votre logiciel ne vous le permet pas, changez de logiciels, il en existe de nombreux dans le monde du logiciel libre.

Quel encodage choisir ?

L’encodage utf-8 est de loin le meilleur choix.

  • Utf-8 permet d’encoder tous les caractères Unicode, pour tous les environnements informatiques, dans toutes les langues.
  • Depuis au moins 10 ans, tous les logiciels de navigation majeurs sont en mesure de reconnaître l’encodage utf-8.
  • Tous les systèmes d’exploitations modernes savent gérer les caractères unicodes et fournissent généralement de base avec le système d’exploitation des polices unicodes.
  • La variété des polices unicodes est de plus en plus étendue, notamment disponibles au format .otf (Open Type Face) ou dans une moindre mesure, au format .ttf (True Type).

Voir aussi :

Entités (X)HTML

En l’absence de la possibilité d’enregistrer le document dans le jeu de caractères approprié, la plupart des éditeurs HTML offrent l’option de convertir les caractères spéciaux (notamment les caractères accentués) en entités HTML pour représenter les caractères désirés. Cette méthode a par contre le désavantage de rendre le texte du document plus difficile à écrire, éditer et modifier.

Ainsi, par exemple, la phrase suivante sera ainsi convertie dans le document HTML :

L’été à Noël ?
L&rsquo;&eacute;t&eacute; &agrave; No&euml;l&nbsp;?

Il est donc préférable d’éviter de les utiliser et de ne les utiliser qu’en dernier recours.

Derniers conseils

  1. Rédigez vos documents HTML en utilisant le jeu de caractères Unicode (encodage utf-8).
  2. Identifiez bien l’encodage utilisé dans l’entête de vos pages HTML.
  3. Enregistrez vos fichiers avec l’option d’encodage utf-8.

Accueil | Contact | Plan du site | | Statistiques du site | Visiteurs : 17449 / 1816296

Suivre la vie du site fr  Suivre la vie du site Cours Web  Suivre la vie du site Sites web statiques  Suivre la vie du site Normes et standards   ?    |    titre sites syndiques OPML   ?

Site réalisé avec SPIP 3.1.4 + AHUNTSIC

Creative Commons License

Visiteurs connectés : 6