Le Consortium Unicode développe la norme Unicode. Son objectif est de remplacer les jeux de caractères existants par sa norme Unicode Transformation Format (UTF).
La norme Unicode est devenue un succès et est mise en œuvre dans les langages HTML, XML, Java, JavaScript, E-mail, ASP, PHP, etc. La norme Unicode est également prise en charge par de nombreux systèmes d'exploitation et tous les navigateurs modernes.
Le Consortium Unicode coopère avec les principales organisations de développement de normes, comme l'ISO, le W3C et l'ECMA.
Unicode peut être implémenté par différents jeux de caractères. Les codages les plus couramment utilisés sont UTF-8 et UTF-16 :
Description des jeux de caractères
UTF-8 Un caractère en UTF-8 peut avoir une longueur de 1 à 4 octets. UTF-8 peut représenter n'importe quel caractère de la norme Unicode. UTF-8 est rétrocompatible avec ASCII. UTF-8 est l'encodage préféré pour le courrier électronique et les pages Web.
UTF-16 16-bit Unicode Transformation Format est un codage de caractères de longueur variable pour Unicode, capable de coder l'ensemble du répertoire Unicode. UTF-16 est utilisé dans les principaux systèmes d'exploitation et environnements, comme Microsoft Windows, Java et .NET.
Conseil : les 128 premiers caractères d'Unicode (qui correspondent un à un avec l'ASCII) sont codés à l'aide d'un seul octet ayant la même valeur binaire que l'ASCII, ce qui fait qu'un texte ASCII valide est également un Unicode codé en UTF-8.
HTML 4 supporte UTF-8. HTML 5 supporte à la fois UTF-8 et UTF-16 !
Les jeux de caractères de la norme ISO-8859 étant limités en taille et non compatibles dans les environnements multilingues, le Consortium Unicode a développé la norme Unicode.
La norme Unicode couvre (presque) tous les caractères, ponctuations et symboles du monde.
Unicode permet le traitement, le stockage et le transport de textes indépendamment de la plate-forme et de la langue.
Le codage de caractères par défaut dans HTML-5 est UTF-8.
Si une page Web HTML5 utilise un jeu de caractères différent d'UTF-8, il doit être spécifié dans la balise <meta> comme :
Exemple <meta charset="ISO-8859-1">
Unicode est un jeu de caractères. UTF-8 est un encodage.
Unicode est une liste de caractères avec des numéros décimaux uniques (points de code). A = 65, B = 66, C = 67, ....
Cette liste de nombres décimaux représente la chaîne "hello" : 104 101 108 108 111
Le codage est la manière dont ces nombres sont traduits en nombres binaires pour être stockés dans un ordinateur :
L'encodage UTF-8 stockera "hello" comme ceci (binaire) : 01101000 01100101 01101100 01101100 01101111
Le codage traduit les nombres en binaire. Les jeux de caractères traduisent les caractères en nombres.
Vous trouverez ci-dessous une liste de certains des codes de caractères UTF-8 pris en charge par HTML5 :