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
Auteurs
Dave RAGGETT
Auteurs
Hors LE
Auteurs
Ian JACOBS
Editeur
W3C
Date
Chapitre
24 Character entity references in HTML 4
Titre
CSS 2.1 Specification
Auteurs
Bert BOS
Auteurs
Tantek ÇELIK
Auteurs
Ian HICKSON
Auteurs
Lie WIUM
Editeur
W3C
Date
Chapitre
4.1.3 Characters and case
Titre
List of Unicode characters
Editeur
Wikipedia
Titre
Unicode 6.0.0
Editeur
unicode.org
Date