Caractères unicodes et entités de caractère

Petit mémo sur l'utilisation des caractères unicodes et les entités de caractère dans différents langages de programmation / structuration / présentation.

Dans tout ce qui suit, les notations suivantes seront utilisées :

  • _DECI_ pour la valeur décimale d'une entité de caractère.
  • _HEXA_ pour la valeur hexadécimale d'une entité de caractère.
  • _NAME_ pour le nom d'une entité de caractère.

Utilisation en HTML / xml

&#_DECI_;
Utilisation de la valeur décimale d'une entité de caractère en HTML.
&#x_HEXA_;
Utilisation de la valeur hexadécimale d'une entité de caractère en HTML.
&_NAME_;
Utilisation du nom d'une entité de caractère en HTML.

Utilisation en CSS

p:after {
    content:"\_HEXA_";
}
Utilisation de la valeur hexadécimale d'une entité de caractère en CSS.

Utilisation en javascript

textNode.nodeValue = "\u_HEXA_";
Utilisation de la valeur hexadécimale d'une entité de caractère en javascript.

Si l'on ne dispose que du code hexadécimal, il n'est pas possible d'obtenir la notation par simple concaténation ("\u" + _HEXA_) ; il faut passer par la fonction unescape :

textNode.nodeValue = unescape("%u" + _HEXA_);
Utilisation d'un code hexadécimal en javascript.

De même, il n'est pas possible d'utiliser la notation décimale ou la notation nommée dans un noeud texte ; elles seront échappées. Il faudra donc les convertir :

/**
 *  Remplacer les entités décimales (&#_DECI_;) dans une chaîne 
 *  de caractères.
 *  @param {String} str
 *  @return {String}
 */
var convertDecimalEntities = function(str) {
    return str.replace(
        /&#(\d+);/g, 
        function(match, number) {
            return String.fromCharCode(number); 
        }
    );
};
Méthode de conversion des entités décimales de caractère.
/**
 *  Remplacer les entités décimales (&#_DECI_;) et les entités
 *  nommées (&_NAME_;) dans une chaîne de caractères.
 *  @param {String} str Chaîne à traiter.
 *  @return {String} Chaîne convertit
 */
var convertEntities = (function() {
    var DUMMY_ELEMENT = document.createElement('p');
    return function(str) {
        DUMMY_ELEMENT.innerHTML = str;
        return DUMMY_ELEMENT.innerHTML;
    };
}());
Méthode de conversion des entités décimales et des entités nommées.

Ressources et références

Titre
Spécification HTML 4.01
Chapitre
24 Character entity references in HTML 4
Auteurs
Raggett DAVE
Auteurs
Le Hors ARNAUD
Auteurs
Jacobs IAN
Editeur
W3C
Date
Titre
CSS 2.1 Specification
Chapitre
4.1.3 Characters and case
Auteurs
Bos BERT
Auteurs
Çelik TANTEK
Auteurs
Hickson IAN
Auteurs
Wium Lie HÅKON
Editeur
W3C
Date
Titre
List of Unicode characters
Editeur
Wikipedia
Titre
Unicode 6.0.0
Éditeur
unicode.org
Date