- Unicode et HTML
-
La relation entre Unicode et HTML tend à être un sujet difficile pour beaucoup de professionnels de l’informatique, d’auteurs de documents, et d’utilisateurs du web. La représentation exacte et appropriée du texte, dans les pages web, pour différentes langues et systèmes d’écriture est compliquée par les détails d’encodage de caractères, de syntaxe de langage de balisage, de police de caractères, et par la diversité des niveaux de support offerts par les navigateurs web.
Sommaire
Caractères des documents HTML
Les pages Web sont typiquement des documents HTML ou bien XHTML. Les deux types de documents consistent, à un niveau fondamental, de caractères, qui sont des unités de graphèmes et des « grapheme-like », indépendamment de comment ils sont stockés dans les systèmes de mémoire informatique et de réseaux informatique.
Un document HTML est une séquence de caractères Unicode.
Que le document soit en HTML ou en XHTML, lorsqu’il est stocké sur un système de fichier ou transmis sur un réseau, les caractères du document sont numérisés comme séquence de bit/octets d’après un codage de caractère particulier. Le codage peut être un des UCS Transformation Format, comme UTF-8, qui peut directement coder n’importe quel caractère Unicode, ou un codage de caractère plus ancien comme Windows-1252, qui ne le peut pas.
Les entités de caractères permettent de s’abstraire de l’encodage du document.
Détermination de l'encodage de caractères
Afin d’interpréter correctement le HTML, un navigateur web doit supposer quel caractère Unicode est représenté par la forme encodée d’un document HTML. Pour ce faire, le navigateur web doit savoir quel encodage a été utilisé. Quand un document est transmis via un message MIME ou une couche de transport qui utilise un contenu de type MIME telle qu’une réponse HTTP, le message peut signaler l’encodage via un entête
Content-Type
, tel queContent-Type: text/html; charset=ISO-8859-1
. D’autres moyens externes pour déterminer l’encodage sont autorisés, mais rarement utilisés. L’encodage peut également être déclaré à l’intérieur même du document, sous la forme d’un élément META, comme<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
. En l’absence de toute déclaration d’encodage, le défaut dépend de la configuration de la localisation du navigateur. Sur un système configuré essentiellement pour les langues ouest-européennes, ce sera généralement ISO-8859-1 ou l’une de ses extensions comme Windows-1252 ou ISO-8859-15. Pour un navigateur où les caractères multi-octets sont la norme, une forme d’autodétection sera sûrement appliquée. Une mauvaise connaissance du codage utilisé peut aboutir à un affichage dégradé des caractères, notamment du caractère euro.Les encodages 8 bits locaux sont plus anciens que l’Unicode et de ce fait plus utilisés dans certaines zones géographiques. À cause de ces habitudes, notamment dans les langages de programmation et systèmes d’exploitation, et du désir d’éviter d’ennuyer les utilisateurs avec la nécessité de comprendre les nuances d’encodage, beaucoup d’éditeurs de textes utilisé par les auteurs HTML sont incapables ou non-désireux d’offrir le choix de l’encodage, lors du stockage d’un fichier sur le disque, et souvent ne permettent pas la saisie de caractères en dehors d’une plage de valeur très limitée. En conséquence, beaucoup d’auteurs HTML sont totalement inconscients des problématiques d’encodage et peuvent n’avoir aucune idée de l’encodage utilisé dans leurs documents. Il est aussi communément mal compris que la déclaration d’encodage n’affecte pas l’encodage effectif, vu qu’il ne s’agit que d’une étiquette informative qui peut ne pas être exacte.
Beaucoup de documents HTML se présentent avec des déclarations d’encodage inappropriées, ou sans aucune déclaration. Afin de déterminer l’encodage dans de tels cas, beaucoup de navigateurs permettent à l’utilisateur de sélectionner manuellement un encodage dans une liste. Ils peuvent également employer un algorithme d’auto-détection qui travaille de concert avec la configuration manuelle. La surcharge manuelle peut s’appliquer à tous les documents, ou seulement à ceux pour lesquels l’encodage ne peut pas être déterminé par les déclarations et/ou les « patterns octets ». La présence d’une surcharge manuelle, et le fait qu’elle soit largement utilisée et adoptée par les utilisateurs, cachent l’imprécision des déclarations d’encodage sur le Web ; en conséquence de quoi, le problème risque de persister. Cela a été résolu d’une certaine manière par XHTML, qui, étant de l’XML, nécessite que la déclaration d’encodage soit précisée, et qu’aucun contournement ne soit employé quand elle est inadaptée.
Encodages effectivement utilisés sur internet
D’après un blog concernant les pages indexées par Google[1], 2008 serait l’année où au niveau mondial l’UTF-8, dont l’utilisation est en croissance rapide, dépasserait les autres usages d’encodages régionaux. D’après des données internes à Google assemblées par Eric von der Poel, les encodages d’Europe occidentale se maintiendrait à 25 % sur la période 2001-2008, alors que sur la même période, UTF-8 passe de 0 % à 25 %, et l’ASCII de 50 % à 25 %.
Lorsqu’un robot parcours le web, il peut effectuer des statistiques sur les encodages déclarés dans les entêtes HTTP, ou dans les balises HTML. Cependant, les encodages utilisés varient en fonction de l’environnement linguistique, et donc notamment en fonction des TLD.À titre d’exemple, en se basant sur les réponses HTTP, en février 2009, on peut noter les taux de déclarations suivants :
encodage HTTP Unknown UTF-8 ISO 8859-1 ISO 8859-2 windows-1255 gb2312 euc-jp gbk ks_c_5601-1987 euc-kr euc_kr com 44 % 28 % 12 % 4 % 1 % fr 34 % 39 % 24 % nl 32 % 49 % 16 % au 31 % 43 % 23 % it 46 % 22 % 30 % uk 44 % 34 % 21 % pl 48 % 21 % 4 % 24 % cn 75 % 8 % 3 % 7 % 4 % encodage HTML Unknown UTF-8 ISO 8859-1 gb2312 euc-jp gbk Shift-JIS ISO 8859-15 x-sjis com 36 % 24 % 13 % 11 % 2 % 7 % 2 % fr 26 % 44 % 27 % 1 % jp 21 % 26 % 11% 36 % 1 % De nombreux navigateurs ne sont capables d’afficher qu’une petite partie du répertoire Unicode. Voici comment votre navigateur affiche différents exemples de code Unicode :
Caractère Code HTML Nom Unicode Ce qu’affiche votre navigateur U+0041 A or A
Lettre majuscule latine A A U+00DF ß or ß
Lettre minuscule latine s dur ß U+00FE þ or þ
Lettre minuscule latine thorn þ U+0394 Δ or Δ
Lettre majuscule grecque delta Δ U+0419 Й or Й
Lettre majuscule cyrillique i bref Й U+05E7 ק or ק
Lettre hébraïque qouf ק U+0645 م or م
Lettre arabe mîm م U+0E57 ๗ or ๗
Chiffre thaï 7 ๗ U+1250 ቐ or ቐ
Syllabe éthiopienne qhä ቐ U+3042 あ or あ
Syllabe hiragana A (japonais) あ U+53F6 叶 or 叶
Idéogramme unifié CJC-53F6 (Sinogramme simplifié shè, xié, yè, « feuille ») 叶 U+8449 葉 or 葉
Idéogramme unifié CJC-8449 (Sinogramme traditionnel shè, xié, yè, « feuille ») 葉 U+B5AB 떫 or 떫
Syllabe hangûl Tteolp (coréen Ssangtikeut Eo Rieulbieup) 떫 U+10346 𐍆 or 𐍆
Lettre gotique f
Wikimedia Foundation. 2010.
Contenu soumis à la licence CC-BY-SA. Source : Article Unicode et HTML de Wikipédia en français (auteurs)
Regardez d'autres dictionnaires:
Unicode et html — Wikipédia … Wikipédia en Français
Unicode and HTML — Web pages authored using hypertext markup language (HTML) may contain multilingual text represented with the Unicode universal character set.The relationship between Unicode and HTML tends to be a difficult topic for many computer professionals,… … Wikipedia
Unicode and HTML for the Hebrew alphabet — See Hebrew alphabet for the main article on the Hebrew alphabet. The Unicode and HTML for the Hebrew alphabet are found in the following tables. The Unicode Hebrew block extends from U+0590 to U+05FF and from U+FB1D to U+FB40. It includes letters … Wikipedia
HTML et Unicode — Unicode et HTML Wikipédia … Wikipédia en Français
Unicode — est une norme informatique, développée par le Consortium Unicode, qui vise à permettre le codage de texte écrit en donnant à tout caractère de n’importe quel système d’écriture un nom et un identifiant numérique, et ce de manière unifiée, quelle… … Wikipédia en Français
Unicode equivalence — is the specification by the Unicode character encoding standard that some sequences of code points represent essentially the same character. This feature was introduced in the standard to allow compatibility with preexisting standard character… … Wikipedia
Unicode typefaces — (also known as UCS fonts and Unicode fonts) are typefaces containing a wide range of characters, letters, digits, glyphs, symbols, ideograms, logograms, etc., which are collectively mapped into the standard Universal Character Set, derived from… … Wikipedia
Unicode character property — Unicode assigns character properties to each code point.[1] These properties can be used to handle characters (code points) in processes, like in line breaking, script direction right to left or applying controls. Slightly inconsequently, some… … Wikipedia
HTML — Расширение .html, .htm MIME text/html Ра … Википедия
Unicode-Block — Logo von Unicode Unicode [ˈjuːnɪkoʊd] ist ein internationaler Standard, in dem langfristig für jedes sinntragende Schriftzeichen oder Textelement aller bekannten Schriftkulturen und Zeichensysteme ein digitaler Code festgelegt wird. Ziel ist es,… … Deutsch Wikipedia