Le CESU-8 () est un codage de caractères variante d'UTF-8 décrit dans le document (html). publié par le consortium Unicode. C'est un encodage d'Unicode sur non normalisé, destiné à un usage interne et non destiné à, ni recommandé pour, des communications. Certains considèrent que sa place est davantage parmi les de l'organisation que dans les rapports techniques.
Le but principal de CESU-8 est de maintenir la même collation binaire qu'UTF-16 tout en gardant un codage . Cependant, comme aucun traitement du caractère NUL n'est appliqué, la chaîne résultante ne peut être traitée comme une chaine terminée par un caractère NUL si la chaine d'origine contient le caractère U+0000.
Détails techniques CESU-8 s'apparente à l'UTF-8 modifié de Java ( UTF-8) mais privé du codage spécial du caractère NUL (U+0000). Il diffère seulement d'UTF-8 par sa représentation différente des caractères supplémentaires. Pour les caractères extérieurs au Plan multilingue de base (ceux générant une paire de seizets d'indirection en UTF-16), CESU-8 génère uniquement des séquences de (c'est-à-dire deux fois ), là où UTF-8 génère une séquence de taille de pour la valeur du caractère dans UTF-32. Pour ces caractères, CESU-8 prend les valeurs, situées dans U+D800..U+DFFF, de chacun des deux points de code de la paire de seizets, puis les code sur , au lieu de coder le caractère représenté par la paire.
En dehors de ces caractères, assez peu courants, les flux UTF-8 et CESU-8 sont similaires et peuvent conduire à des détections erronées. C'est une des raisons pour lesquelles le consortium Unicode ne recommande pas son usage hors d'une mise en œuvre fermée. Le nom originel de CESU-8 était d'ailleurs UTF-8S, ce qui renforçait la confusion.
Dans le cas de données UTF-16 d'entrée invalides (c'est-à-dire un seizet de paire non couplé), bien que reproduire l'erreur dans la sortie serait fidèle, il est recommandé que le convertisseur notifie l'erreur et arrête le traitement unicode.org, récupéré le 26 septembre 2006..
Utilisation de CESU-8
Dans la pratique, le seul environnement majeur faisant usage de CESU-8 est le SGBD relationnel Oracle, qui semble-t-il utilise désormais UTF-16 comme représentation interne des caractères. « L'UTF8 » (sans le trait d'union) d'Oracle, en réalité CESU-8, est un codec non-standard rejetant les séquences représentant un caractère hors BMP mais acceptant et générant celles usitées dans CESU-8. On peut obtenir la norme UTF-8 en utilisant le jeu de caractères « AL32UTF8 » (depuis Oracle ).
Il a aussi été rapporté que MySQL depuis la tolère les séquences CESU-8 quand UTF-8 est attendu sur la liste de diffusion Wikitech-l..
Exemple
Codage U+0045 U+0205 U+10400 UTF-8 45 C8 85 F0 90 90 80 UTF-16 0045 0205 D801 DC00 CESU-8 45 C8 85 ED A0 81 ED B0 80
Voir aussi Notes et références
Liens externes
Articles connexes UTF-8 UTF-16 Unicode
Catégorie:Unicode