Codes ASCII et Unicode

Affiche le point de code de chaque caractère, ou reconstitue le texte à partir de codes décimaux ou hexadécimaux.

Des points de code, pas des octets hexadécimaux

L’ASCII, ce sont les nombres de 0 à 127. Un sinogramme n’est pas un octet ASCII : c’est un point de code Unicode, et en UTF-8 ce point occupe plusieurs octets. Ici, un caractère donne un nombre, en décimal ou en hexadécimal. Pas de dump des octets UTF-8. Pour les octets, chaîne en octets ou texte en binaire.

Dans quel ordre

  1. Collez du texte, ou des codes séparés par des espaces, des virgules ou des retours à la ligne.
  2. Choisissez texte vers codes ou codes vers texte, puis décimal ou hexadécimal.
  3. L’exemple AB vaut 65 66 en décimal, et 41 42 en hexadécimal.
  4. Un jeton qui n’est pas un nombre dans la base choisie, ou qui n’est pas un code de caractère valide, fait échouer l’ensemble. Le mauvais jeton n’est pas sauté.

Quel nombre vous lisez

65, c’est A. 20013, c’est 中. Ni l’un ni l’autre n’est un octet UTF-8. Les octets UTF-8 de 中 sont E4 B8 AD. Si un autre outil montre trois paires hexadécimales pour un seul caractère, il montre des octets, et les nombres ne colleront pas tant que vous n’aurez pas changé d’outil. L’hexadécimal ici n’a ni 0x ni U+. Au retour des codes vers le texte, espaces, virgules et retours sont des séparateurs, pas des caractères du résultat.

À quoi ça sert

  • Lire un point de code décimal dans une spec ou un message d’erreur.
  • Vérifier lequel de deux caractères presque identiques vous avez.
  • Préparer une courte liste de codes pour un exercice de parseur.

Questions

Pourquoi 中 n’est pas 228 ni E4 ?

Ce sont des octets UTF-8. Cette page affiche le point de code, un nombre par caractère.

Un emoji est devenu un seul nombre.

Ce nombre est le point de code. Un emoji peut être un point au-dessus de 65535, ou plusieurs points s’il forme une suite. Chaque point est un nombre.