Jeux de caractères et encodage UTF-8
- La norme ISO/IEC 10646 réunit tous les alphabets de la planète en utilisant 32 bits par caractères.
- Du fait que, pour l'instant, toutes les valeurs utilisées dans la norme ISO/IEC 10646 tiennent sur 16 bits, la norme Unicode a été introduite, qui reprend les mêmes valeurs que la norme ISO/IEC 10646, mais en ne gardant que les 16 bits effectivement utilisés.
- La norme Unicode définit un jeu de caractères sur 16 bits contenant la plupart des alphabets de la planète: UCS-2 (Unicode Character Set 2)
- La norme Unicode définit donc une valeur numérique sur 16 bits pour chaque caractère de la plupart des alphabets connus. Pour archiver des textes dans des fichiers, on peut donc soit systématiquement utiliser deux octets par caractères, soit utiliser un encodage qui emploira un nombre variable d'octets par caractère.
- Pour les applications traitant des caractères sur 8 (voire 7) bits, divers formats de transformation de jeux de caractères Unicode en séquences d'octets ont été définis.
- UTF-8 est un des format de transformation de caractères UCS-2 en séquences d'octets de longueur variable (variant entre 1 et 6 octets).
- UTF-8 a pour caractéristique de préserver le jeu de caractères ASCII: tous les caractères du code ASCII sont codés sur un seul octet dont la valeur est celle du code ASCII. De plus, seuls les caractères du code ASCII utilisent des octets dont la valeur correspond à un code ASCII. Les caractères ASCII sont donc faciles à repérer.
-
Les versions récentes des principaux butineurs supportent la norme
UTF-8. Il suffit d'ajouter dans la section <head> d'un document une
méta-information indiquant cela:
<meta http-equiv="content-type" content="text/html; charset="utf-8">
Il est alors possible, dans la section <body>, d'utiliser des séquences d'octets correspondant à l'encodage UTF-8 ou le code numérique dans une entité &#xxx; (où xxx est le code numérique du caractère à afficher). Il faut donc soit disposer d'un éditeur de texte capable de générer de l'UTF-8 ou utiliser les entités avec code numérique (voir exemple de document utilisant les entités avec code numérique pour afficher les lettres de différents alphabets). Pour une liste des caractères avec leur code, voir ci-dessous Liste des caractères définis dans la norme ISO 10646-1. Le document Comparaison d'éditeurs HTML donne des indications quant au support UTF-8 de divers éditeurs HTML.
- Annexe R de la norme ISO/IEC 10646-1: UCS Transformation Format 8 (UTF-8)
- Liste des caractères définis dans la norme ISO 10646-1: version en un seul document texte (où les séquences d'octets UTF-8 sont visibles), version en un seul document HTML (où les caractères sont visibles graphiquement)
- Encodings of Unicode/ISO-10646
- Unicode and Multilingual Support in Web Browsers and HTML
- Fonts for the Unicode Character Set
- RFC 2044: UTF-8, a transformation format of Unicode and ISO 10646
- RFC 2130: The Report of the IAB Character Set Workshop
- Internet Draft draft-alvestrand-charset-policy-02.txt: IETF Policy on Character Sets and Languages
- RFC 2231: MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations
- Page du manuel Linux sur UTF-8
- Page du manuel Linux sur Unicode
- code C pour convertir d'UCS en UTF-8 et vice-versa
- Quelques commentaires de Glenn Adams sur la norme ISO 10646-1
- Hello World, par Rob Pike et Ken Thompson