ToolActToolAct

Consultation de la Table ASCII

Référence complète des codes de caractères ASCII avec caractères de contrôles, imprimables et étendus

256 caractères au total
DécimalHexCaractèreDescription
00x00-Caractère nul
10x01-Début d'en-tête
20x02-Début de texte
30x03-Fin de texte
40x04-Fin de transmission
50x05-Demande
60x06-Accusé de réception
70x07-Sonnerie
80x08-Retour arrière
90x09-Tabulation horizontale
100x0A-Saut de ligne
110x0B-Tabulation verticale
120x0C-Saut de page
130x0D-Retour chariot
140x0E-Shift Out
150x0F-Shift In
160x10-Échappement de liaison de données
170x11-Contrôle de périphérique 1
180x12-Contrôle de périphérique 2
190x13-Contrôle de périphérique 3
200x14-Contrôle de périphérique 4
210x15-Accusé de réception négatif
220x16-Synchronisation inactive
230x17-Fin de bloc de transmission
240x18-Annulation
250x19-Fin de support
260x1A-Substitut
270x1B-Échappement
280x1C-Séparateur de fichier
290x1D-Séparateur de groupe
300x1E-Séparateur d'enregistrement
310x1F-Séparateur d'unité
1270x7F-Supprimer
320x20Espace
330x21!Point d'exclamation
340x22"Guillemet double
350x23#Croisillon
360x24$Signe dollar
370x25%Signe pourcentage
380x26&Esperluette
390x27'Guillemet simple
400x28(Parenthèse gauche
410x29)Parenthèse droite
420x2A*Astérisque
430x2B+Signe plus
440x2C,Virgule
450x2D-Tiret
460x2E.Point
470x2F/Barre oblique
480x300Chiffre 0
490x311Chiffre 1
500x322Chiffre 2
510x333Chiffre 3
520x344Chiffre 4
530x355Chiffre 5
540x366Chiffre 6
550x377Chiffre 7
560x388Chiffre 8
570x399Chiffre 9
580x3A:Deux-points
590x3B;Point-virgule
600x3C<Inférieur à
610x3D=Signe égal
620x3E>Supérieur à
630x3F?Point d'interrogation
640x40@Arobase
650x41AMajuscule A
660x42BMajuscule B
670x43CMajuscule C
680x44DMajuscule D
690x45EMajuscule E
700x46FMajuscule F
710x47GMajuscule G
720x48HMajuscule H
730x49IMajuscule I
740x4AJMajuscule J
750x4BKMajuscule K
760x4CLMajuscule L
770x4DMMajuscule M
780x4ENMajuscule N
790x4FOMajuscule O
800x50PMajuscule P
810x51QMajuscule Q
820x52RMajuscule R
830x53SMajuscule S
840x54TMajuscule T
850x55UMajuscule U
860x56VMajuscule V
870x57WMajuscule W
880x58XMajuscule X
890x59YMajuscule Y
900x5AZMajuscule Z
910x5B[Crochet gauche
920x5C\Barre oblique inversée
930x5D]Crochet droit
940x5E^Accent circonflexe
950x5F_Tiret bas
960x60`Accent grave
970x61aMinuscule a
980x62bMinuscule b
990x63cMinuscule c
1000x64dMinuscule d
1010x65eMinuscule e
1020x66fMinuscule f
1030x67gMinuscule g
1040x68hMinuscule h
1050x69iMinuscule i
1060x6AjMinuscule j
1070x6BkMinuscule k
1080x6ClMinuscule l
1090x6DmMinuscule m
1100x6EnMinuscule n
1110x6FoMinuscule o
1120x70pMinuscule p
1130x71qMinuscule q
1140x72rMinuscule r
1150x73sMinuscule s
1160x74tMinuscule t
1170x75uMinuscule u
1180x76vMinuscule v
1190x77wMinuscule w
1200x78xMinuscule x
1210x79yMinuscule y
1220x7AzMinuscule z
1230x7B{Accolade gauche
1240x7C|Barre verticale
1250x7D}Accolade droite
1260x7E~Tilde
1280x80€
1290x81
1300x82‚
1310x83ƒ
1320x84„
1330x85…
1340x86†
1350x87‡
1360x88ˆ
1370x89‰
1380x8AŠ
1390x8B‹
1400x8CŒ
1410x8D
1420x8EŽ
1430x8F
1440x90
1450x91‘
1460x92’
1470x93“
1480x94”
1490x95•
1500x96–
1510x97—
1520x98˜
1530x99™
1540x9Aš
1550x9B›
1560x9Cœ
1570x9D
1580x9Ež
1590x9FŸ
1600xA0 
1610xA1¡
1620xA2¢
1630xA3£
1640xA4¤
1650xA5¥
1660xA6¦
1670xA7§
1680xA8¨
1690xA9©
1700xAAª
1710xAB«
1720xAC¬
1730xAD­
1740xAE®
1750xAF¯
1760xB0°
1770xB1±
1780xB2²
1790xB3³
1800xB4´
1810xB5µ
1820xB6
1830xB7·
1840xB8¸
1850xB9¹
1860xBAº
1870xBB»
1880xBC¼
1890xBD½
1900xBE¾
1910xBF¿
1920xC0À
1930xC1Á
1940xC2Â
1950xC3Ã
1960xC4Ä
1970xC5Å
1980xC6Æ
1990xC7Ç
2000xC8È
2010xC9É
2020xCAÊ
2030xCBË
2040xCCÌ
2050xCDÍ
2060xCEÎ
2070xCFÏ
2080xD0Ð
2090xD1Ñ
2100xD2Ò
2110xD3Ó
2120xD4Ô
2130xD5Õ
2140xD6Ö
2150xD7×
2160xD8Ø
2170xD9Ù
2180xDAÚ
2190xDBÛ
2200xDCÜ
2210xDDÝ
2220xDEÞ
2230xDFß
2240xE0à
2250xE1á
2260xE2â
2270xE3ã
2280xE4ä
2290xE5å
2300xE6æ
2310xE7ç
2320xE8è
2330xE9é
2340xEAê
2350xEBë
2360xECì
2370xEDí
2380xEEî
2390xEFï
2400xF0ð
2410xF1ñ
2420xF2ò
2430xF3ó
2440xF4ô
2450xF5õ
2460xF6ö
2470xF7÷
2480xF8ø
2490xF9ù
2500xFAú
2510xFBû
2520xFCü
2530xFDý
2540xFEþ
2550xFFÿ

Qu'est-ce que ASCII ?

ASCII (American Standard Code for Information Interchange) est un standard d'encodage de caractères basé sur l'alphabet latin. Développé initialement pour la communication par télégraphe, il est devenu le système d'encodage de caractères fondamental en informatique. ASCII standard contient 128 caractères (0-127), incluant 33 caractères de contrôle et 95 caractères imprimables. Une table ASCII est surtout utile pour déboguer encodages, caractères de contrôle, protocoles, séquences d’échappement, terminaux et anciens formats. Les valeurs décimales, hexadécimales et binaires montrent comment un caractère est réellement stocké ou transmis. Le texte moderne utilise généralement Unicode, donc ASCII ne couvre que le noyau historique sur 7 bits. Pour caractères internationaux, emoji, signes typographiques et textes multilingues, il faut aussi vérifier les points de code Unicode et l’encodage.

Comment utiliser

Opérations de base

  1. Cliquez sur une valeur ou un caractère pour la copier
  2. Utilisez la barre de recherche pour trouver rapidement un caractère précis
  3. Cliquez sur les boutons de catégorie pour filtrer par type de caractère
  4. Survolez les caractères pour afficher leur description détaillée

Remarques sur l'encodage

  • ASCII ne couvre que la plage 0-127 ; les lettres accentuées, les émojis et la plupart des textes non anglais nécessitent un encodage Unicode tel que UTF-8.
  • Les caractères de contrôle peuvent ne pas s'afficher visiblement, mais ils peuvent tout de même affecter fichiers, terminaux, protocoles et texte copié-collé.

Cas d’utilisation

Trouver le code exact d’un caractère visible ou invisibleRecherchez par caractère, valeur décimale, hexadécimale ou description pour confirmer des entrées comme l’espace 32, LF 0x0A, CR 0x0D, ESC 0x1B ou le A majuscule 65 lors du débogage de traitement de texte. La page est un outil de référence sans champ d’envoi — les recherches portent sur les 128 entrées ASCII intégrées, permettant de consulter des points de code, fragments de log ou constantes de protocole sans les transmettre.
Séparer les caractères de contrôle du texte imprimableUtilisez les filtres contrôle, imprimable et étendu lorsqu’un log, message série, fichier CSV ou sortie de terminal contient des caractères invisibles qui modifient le comportement d’analyse. Aucune donnée de caractère n’est collectée, les mêmes filtres peuvent servir à former des stagiaires, construire des fiches de référence ou auditer les attentes d’un parseur sans laisser de trace dans un backend.
Copier des valeurs de référence dans le code ou la documentationCliquez sur une valeur d’une ligne du tableau pour la copier lors de la rédaction de tests de parseur, notes de protocole, références clavier, explications de séquences d’échappement ou documentation d’intégration legacy. Pour les valeurs étendues 128-255, vérifiez la page de code cible — le tableau indique la position mais ne peut savoir quelle page de code le système de destination utilise réellement.
Décoder une séquence d’échappement sans consulter un manuelCollez une séquence comme \x1B[31m, \r\n ou \t dans la barre de recherche et lisez les valeurs décimales, hexadécimales et binaires ainsi que le rendu imprimable. Utile lorsque des lignes de log ou sorties de terminal affichent du mojibake et que vous devez confirmer si l’octet d’origine était un caractère de contrôle ou un artefact de page de code. La recherche s’effectue uniquement sur le tableau intégré à la page, les captures de systèmes de production ne quittent jamais le navigateur.
Construire un inventaire de caractères imprimables pour un parseurFiltrez les caractères imprimables et passez en revue les 95 entrées de la plage ASCII avant de définir une liste autorisée pour un parseur strict. Cela aide à repérer les hypothèses sur les espaces, ponctuations et guillemets qui diffèrent souvent entre langages de programmation, shells, sorties de terminal et dialectes CSV. L’inventaire provient des données statiques de la page, sa consultation ne dépend ni de la connectivité réseau ni d’une documentation externe.

Principe technique

ASCII (American Standard Code for Information Interchange, ANSI X3.4-1968, ISO/IEC 646:1991 IRV) est un encodage de caractères sur 7 bits attribuant des codes numériques de 0 à 127 à 128 caractères. Les 32 premiers codes (0x00-0x1F) plus 0x7F sont des caractères de contrôle hérités des télétypes : NUL (0x00), BEL (0x07, la sonnerie d'alerte), LF (0x0A, saut de ligne), CR (0x0D, retour chariot), ESC (0x1B), DEL (0x7F), etc. Les codes 0x20-0x7E sont imprimables : espace, les chiffres 0-9 à 0x30-0x39, les lettres majuscules A-Z à 0x41-0x5A, les lettres minuscules a-z à 0x61-0x7A et la ponctuation entre elles. L'encodage a une structure délibérément régulière. Les chiffres sont groupés : '0' = 0x30, '1' = 0x31, ..., '9' = 0x39. Convertir un caractère chiffre en sa valeur numérique est `code - 0x30`. Les lettres sont également groupées : 'A' = 0x41, 'B' = 0x42, ..., 'Z' = 0x5A, et 'a' = 0x61, ..., 'z' = 0x7A. La différence entre majuscule et minuscule pour une même lettre est 0x20 (32), ce qui correspond exactement à un bit en position 5 (1 << 5 = 32). Cela rend la conversion de casse un simple XOR ou OR/AND avec 0x20 : `code ^ 0x20` inverse la casse, `code | 0x20` passe en minuscules, `code & 0x5F` (= `code & ~0x20`) passe en majuscules. Cette astuce de bits est la conversion de casse la plus rapide possible et se retrouve dans les implémentations strlen/strcmp pour les chaînes ASCII uniquement. ASCII a été conçu pour les télétypes sur 7 bits et le code Baudot sur 5 niveaux qui l'a précédé, il précède donc les octets de 8 bits. La plage « ASCII étendu » sur 8 bits (0x80-0xFF) n'a jamais été standardisée, ce qui explique pourquoi tant de pages de codes (ISO 8859-1 Latin-1, Windows-1252, MacRoman, KOI8-R, IBM437) se sont disputées la moitié haute. ISO 8859-1 (Latin-1) était ce qui se rapprochait le plus d'un standard, mais même lui manquait le signe Euro jusqu'à ISO 8859-15. La plage de contrôle C1 (0x80-0x9F) devait être réservée (ISO 6429), mais Windows-1252 en a réutilisé une partie pour des caractères imprimables — un point de douleur d'interopérabilité de longue date que l'UTF-8 a finalement résolu. L'UTF-8 (RFC 3629, 2003) a été conçu par Rob Pike et Ken Thompson en 1992 comme un sur-ensemble rétrocompatible : les 128 codes ASCII s'encodent en eux-mêmes sur un seul octet (0x00-0x7F), donc tout texte ASCII est aussi un texte UTF-8 valide. Les codes supérieurs à 0x7F utilisent des séquences de 2, 3 ou 4 octets avec des motifs de bits spécifiques (110xxxxx 10xxxxxx, 1110xxxx 10xxxxxx 10xxxxxx, 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx) permettant au décodeur de se resynchroniser octet par octet après une erreur. L'EBCDIC, en revanche, était l'encodage 8 bits d'IBM pour les ordinateurs centraux (l'EBCDIC 8 bits était sur 8 bits, pas sur 7 bits comme ASCII) et attribue des lettres à des points de code non contigus ('A' = 0xC1, 'I' = 0xC9, 'J' = 0xD1, ..., avec des lacunes qui nuisent aux astuces de bits et aux algorithmes de chaînes). Les variantes nationales d'ISO 646 remplaçaient un petit ensemble de caractères ASCII par des lettres spécifiques au pays. Par exemple, la variante britannique remplaçait 0x23 (le '#' américain) par le signe livre '£', et la variante allemande remplaçait une partie de la ponctuation par des caractères accentués. C'est pourquoi les paramètres régionaux de C et les fichiers charmap de POSIX étaient historiquement importants — ils faisaient la correspondance entre l'IRV (Version Internationale de Référence) et les variantes nationales. La solution à ce problème est Unicode / UTF-8, qui rend obsolète l'ensemble du débat 7 bits et 8 bits pour tout nouveau projet.

  • ASCII (ANSI X3.4-1968, ISO/IEC 646 IRV) utilise 7 bits par caractère avec 128 points de code : 33 caractères de contrôle (0x00-0x1F, 0x7F) et 95 caractères imprimables (0x20-0x7E).
  • Les caractères de contrôle (0x00-0x1F, 0x7F) étaient hérités des télétypes : NUL, BEL (0x07, sonnerie d'alerte), LF (0x0A), CR (0x0D), ESC (0x1B), DEL (0x7F). Le texte moderne utilise encore LF et CR ; le reste relève principalement de l'histoire.
  • Disposition des caractères imprimables : espace (0x20), chiffres '0'-'9' (0x30-0x39), majuscules 'A'-'Z' (0x41-0x5A), minuscules 'a'-'z' (0x61-0x7A), ponctuation entre les deux. Convertir '5' en 5 est `code - 0x30` ; majuscule vers minuscule est `code | 0x20`.
  • La conversion de casse est une seule opération binaire : XOR 0x20 inverse la casse ; OR 0x20 passe en minuscules ; AND 0x5F (= `code & ~0x20`) passe en majuscules. C'est la conversion de casse la plus rapide dans n'importe quel langage et c'est ainsi que fonctionnent strlen/strcmp sur les tampons ASCII uniquement.
  • Les extensions sur 8 bits (0x80-0xFF) n'ont jamais été standardisées, donc Windows-1252, ISO-8859-1, MacRoman, KOI8-R, IBM437 ont tous défini la moitié haute différemment. Windows-1252 a gagné sur le web et est le « ASCII étendu » de facto utilisé par la plupart des anciens codes.
  • L'UTF-8 (RFC 3629, Pike & Thompson 1992) est un sur-ensemble strict d'ASCII : les 128 points de code ASCII s'encodent comme eux-mêmes sur 1 octet ; les points de code supérieurs à U+007F utilisent 2 à 4 octets avec des octets de continuation 110xxxxx 10xxxxxx, permettant aux décodeurs de se resynchroniser octet par octet après les erreurs.
  • L'EBCDIC (IBM, années 1960, ordinateurs centraux) est l'alternative 8 bits à ASCII utilisée sur IBM z/OS. Les positions des lettres ne sont pas contiguës ('A'=0xC1, 'I'=0xC9, 'J'=0xD1), donc l'astuce de conversion de casse ASCII ne fonctionne pas et les algorithmes de décalage de bits comme tolower() nécessitent des recherches en table.
  • Les variantes nationales d'ISO 646 (britannique, allemande, suédoise, etc.) remplaçaient un petit ensemble de caractères ASCII par des lettres spécifiques au pays : la variante britannique a échangé '#' contre '£' à 0x23, la variante allemande a échangé de la ponctuation contre des caractères accentués. La localisation pré-Unicode en résumé.

Exemples

Recherche rapide de caractère

Caractère : 'A'
  Décimal : 65
  Hex :     0x41
  Binaire : 01000001
  Octal :   0101
  Échap C : \x41  ('\x41' en C / C++ / Python / JavaScript)

La différence entre majuscule et minuscule est 0x20 (32 en décimal) :
  'a' = 0x61 (97)    =  'A' (0x41) + 0x20
  'A' = 0x41 (65)    =  'a' (0x61) - 0x20
C'est pourquoi inverser le bit 5 (masque 0x20) change la casse d'une lettre.

  ch ^ 0x20   inverse A <-> a   (fonctionne pour A-Z, a-z, laisse les autres inchangés)

Débogage des problèmes de saut de ligne

LF  (0x0A, décimal 10)  - Unix, Linux, macOS moderne  '\n'
CR  (0x0D, décimal 13)  - Mac OS classique (avant OS X), certains protocoles réseau  '\r'
CRLF (0x0D 0x0A, '13 10')  - Windows, HTTP, SMTP, FTP  '\r\n'

Vidage hex d'un fichier 'hi\r\n' enregistré sous Windows :
  0000:  68 69 0d 0a         hi..

Vidage hex du même contenu enregistré sous Linux ('hi\n') :
  0000:  68 69 0a            hi.

Effet sur le compte de lignes :
  $ wc -l windows.txt unix.txt
       1 windows.txt    (1 saut de ligne, 0x0D 0x0A)
       1 unix.txt       (1 saut de ligne, 0x0A)
  Le nombre d'octets diffère (4 vs 3) et des outils comme dos2unix détectent en
  recherchant les paires 0x0D 0x0A et en supprimant le 0x0D.

Référence d'encodage URL

Ensemble non réservé + réservé RFC 3986 (le reste doit être encodé en pourcentage) :
  non réservé  A-Z a-z 0-9 - _ . ~
  réservé      ! * ' ( ) ; : @ & = + $ , / ? # [ ]
  encoder tout le reste en %HH, où HH est le hex majuscule à 2 chiffres

Caractères courants :
  espace   0x20  ->  %20   (ou '+' dans application/x-www-form-urlencoded)
  !        0x21  ->  %21
  "        0x22  ->  %22
  #        0x23  ->  %23
  $        0x24  ->  %24
  %        0x25  ->  %25
  &        0x26  ->  %26   (séparateur dans les query strings - toujours encoder dans les valeurs)
  '        0x27  ->  %27
  (        0x28  ->  %28
  )        0x29  ->  %29
  +        0x2B  ->  %2B   (ou %20 dans les corps de formulaire ; '+' signifie espace là)
  ,        0x2C  ->  %2C
  /        0x2F  ->  %2F   (réservé dans le chemin, souvent sûr dans la query)
  :        0x3A  ->  %3A
  ;        0x3B  ->  %3B
  =        0x3D  ->  %3D
  ?        0x3F  ->  %3F
  @        0x40  ->  %40

Exemple :  https://example.com/path with space and ampersand
Encodé :   https://example.com/path%20with%20space%20%26%20ampersand

Échappements de caractères de contrôle et métacaractères regex

Codes de contrôle courants et leurs formes d'échappement dans les chaînes C / Python / JavaScript :
  NUL  0x00  '\0'         (terminateur de chaîne en C)
  BEL  0x07  '\a'         (cloche du terminal)
  BS   0x08  '\b'         (retour arrière)
  TAB  0x09  '\t'         (tabulation horizontale)
  LF   0x0A  '\n'         (saut de ligne)
  VT   0x0B  '\v'         (tabulation verticale)
  FF   0x0C  '\f'         (saut de page)
  CR   0x0D  '\r'         (retour chariot)
  ESC  0x1B  '\x1b' / '\e' (POSIX)  (début de séquence d'échappement)
  DEL  0x7F  '\x7f'       (suppression)

Métacaractères regex devant être échappés avec \ :
  ^ $ . | ? * + ( ) [ ] { } \

Extrait JavaScript reproduisant la table ci-dessus :
  const ctrl = { 0:'NUL', 9:'TAB', 10:'LF', 13:'CR', 27:'ESC', 32:'SP', 127:'DEL' };
  for (const [code, name] of Object.entries(ctrl)) {
    console.log(`${code.toString().padStart(3)}  0x${(+code).toString(16).padStart(2,'0')}  ${name}`);
  }
  // ->  ' 0x20 SP'   0a LF   0d CR   etc.

FAQ

Quelle est la taille de la table ASCII ?

L'ASCII standard a 128 points de code (0-127) : 33 caractères de contrôle (0-31 plus 127 DEL) et 95 caractères imprimables (de l'espace à ~). L'« ASCII étendu » désigne divers encodages mono-octet à 256 points de code comme Windows-1252 ou ISO-8859-1, qui ne sont pas réellement de l'ASCII.

Pourquoi le caractère 32 est-il listé comme « Space » au lieu d'un glyphe visible ?

Le point de code 32 (0x20) est le caractère espace lui-même. Il est imprimable mais invisible. La page affiche l'étiquette « SP » ou « Space » pour que vous puissiez le copier ; cliquer sur la ligne copie tout de même un véritable caractère espace dans le presse-papiers.

À quoi servent les 32 premiers codes ASCII ?

Ce sont des caractères de contrôle hérités de l'époque des téléscripteurs : TAB (9), LF (10), CR (13), ESC (27), entre autres. Les logiciels modernes utilisent encore TAB, LF, CR et NUL (0) ; les autres (BEL, ACK, ENQ, etc.) sont surtout historiques et n'apparaissent que dans les protocoles série et les en-têtes de fichiers binaires.

L'ASCII est-il identique à l'UTF-8 ?

L'ASCII est un encodage 7 bits pour l'anglais. L'UTF-8 est un encodage à longueur variable, compatible octet par octet avec l'ASCII pour les 128 premiers points de code : un fichier purement ASCII est donc également un UTF-8 valide. UTF-8 s'étend ensuite avec des séquences de 2 à 4 octets pour couvrir le reste d'Unicode.

Comment convertir un caractère entre décimal, hexadécimal et binaire ?

Choisissez une ligne pour voir les quatre représentations. Par exemple, « A » correspond au décimal 65, à l'hexadécimal 0x41, à l'octal 0101 et au binaire 01000001. La colonne « Char » contient le glyphe et la colonne « Description » donne le nom Unicode officiel.

Pourquoi cette table ne liste-t-elle pas é, ñ ou 中 ?

Ces caractères sont en dehors de la plage ASCII. é et ñ se trouvent dans Latin-1 (points de code 233 et 241) ; 中 est dans CJK Unified Ideographs (U+4E2D). Utilisez un outil de recherche Unicode pour ces caractères : l'ASCII ne va que jusqu'à 127.

Comment saisir un caractère si je ne connais que son code ASCII ?

Sous Windows, maintenez Alt et tapez le code décimal sur le pavé numérique (Alt+65 pour A). Sous macOS et Linux, copiez-collez depuis cette table ou utilisez la fonction de saisie hexadécimale de votre méthode d'entrée. En code, utilisez \xNN (hex), \NNN (octal), chr(N) (Python) ou String.fromCharCode(N) (JavaScript).