UTF-8/fr

From Free Pascal wiki
Revision as of 20:05, 9 November 2016 by E-ric (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

English (en) suomi (fi) français (fr) русский (ru)

UTF-8 (8-bits UCS/Unicode Transformation Format) est un encodage des caractères en longueur variable pour l'Unicode. Les caractères Unicode allant de U+0000 à U+007F sont encodés simplement comme les octets correspondants de 00h à 7Fh. Cela signifie que les fichiers et les chaînes qui contiennent seulement des caractères ASCII 7-bits ont le même encodage à la fois en ASCII et en UTF-8.

Tous les caractères > U+007F sont encodés comme une séquence de plusieurs octets, dont chacun a les 2 bits les plus significatifs de mis. Aucune séquence d'octets d'un caractère n'est contenue dans une séquence d'octets plus longue d'un autre caractère. Cela permet des recherches rapides de sous-chaînes. Le premier octet d'une séquence multi-octet qui représente un caractère non ASCII est toujours dans l'intervalle de C0h à FDh et il indique combien d'octets suivent pour ce caractère. Tous les autres octets de la séquence multi-octet sont dans l'intervalle 80h à BFh. Cela permet des resynchronisations rapides et de la robustesse.

Séquence d'octets UTF-8
  Points de code 1er byte 2ème byte 3ème byte 4ème byte Bit le plus significatif du 1er octet d'une séquence multi-octet
  U+0000..U+007F   00..7F   0   ASCII  
  U+0080..U+07FF   C2..DF   80..BF   110   - Caractères UTF-8 Latin
 
  U+0800..U+0FFF   E0   A0..BF   80..BF   1110
  U+1000..U+FFFF   E1..EF   80..BF   80..BF   1110
  U+10000..U+3FFFF   F0   90..BF   80..BF   80..BF   11110
  U+40000..U+FFFFF   F1..F3   80..BF   80..BF   80..BF   11110
  U+100000..U+10FFFF   F4   80..BF   80..BF   80..BF   11110

Fonctions UTF8

FreePascal

L'unité System contient quelques fonctions basiques:

  • UnicodeToUtf8
  • Utf8ToUnicode
  • UTF8Encode
  • UTF8Decode
  • AnsiToUtf8
  • Utf8ToAnsi

Lazarus

Lazarus contient aussi des fonctions UTF8. Pour plus de détail, voir LCL Unicode Support

Voir aussi