Intermédiaire 8 min de lecture 25 janvier 2025

Table ASCII : codes, plages et usages courants

La table ASCII reste la base des échanges texte : logs, protocoles, CSV, terminaux. Comprendre ses codes, ses limites et ses catégories évite des heures de débogage. Voici l’essentiel pour lire, comparer et convertir correctement vos données en ASCII.

Qu'est-ce que la table ASCII ?

Il s'agit d'un jeu de caractères sur 7 bits (0–127) qui définit des caractères de contrôle et des caractères imprimables.

Voici les principales familles de la table ASCII :

1 Plage imprimable ASCII (32–126)

Lettres, chiffres, ponctuation et espace standard.

A (65), a (97), 0 (48), Espace (32), ! (33), ~ (126)

2 Caractères de contrôle ASCII

Codes 0 à 31 et 127 : NUL, BEL, ESC, DEL… utiles pour le contrôle de flux.

NUL (0), BEL (7), ESC (27), DEL (127)

3 Espacement et fin de ligne en ASCII

Les séparateurs de base présents dans la table ASCII :

Espace (0x20) - Séparateur classique
Tabulation (0x09) - Horizontal Tab
CR (0x0D), LF (0x0A) - Retours de ligne
Form Feed (0x0C), Vertical Tab (0x0B)

4 Extensions et encodages autour d’ASCII

Ce qui dépasse ASCII et crée souvent des confusions :

ISO-8859-1 / Windows-1252 - « ASCII étendu » (128–255)
UTF-8 - Codage multi-octets (é = 0xC3 0xA9)
Différences de guillemets typographiques vs quotes ASCII

Problèmes classiques avec la table ASCII

Copier-coller hors ASCII

Introduit des octets > 0x7F (accents, guillemets typographiques) absents de la table ASCII.

Comparaisons et tris inattendus

L’ordre dépend des codes ASCII (A–Z avant a–z, ponctuation avant lettres).

trim()/strip() et séparateurs

Tab (0x09), CR (0x0D), LF (0x0A) restent invisibles et perturbent les découpages.

Regex en mode ASCII vs Unicode

Selon le moteur, \s et \w se basent sur ASCII ou sur Unicode et changent la portée.

Exemple de problème courant :

# Deux chaînes visuellement proches mais codes ASCII différents
string1 = "Cafe"
string2 = "Café" # 'é' n'existe pas en ASCII (UTF-8: c3 a9)
assert string1 == string2 # ❌ Échec

Symptômes qui doivent vous alerter

🚨 Signaux d'alarme

!
Un diff git montre des changements massifs à cause de CRLF/LF (0x0D/0x0A)
!
Des split() ou parse CSV ratent à cause de tabulations ou retours de ligne
!
Un .env échoue car un CR caché (0x0D) reste en fin de ligne
!
L’éditeur surligne un symbole ▯ lors du déplacement du curseur (caractère de contrôle)
!
Un copier-coller dans un terminal déclenche une erreur à cause d’un ESC/BEL

Comment les détecter

Solution recommandée : Clean ASCII

Clean ASCII vérifie la conformité à la table ASCII, localise les octets hors plage et affiche les codes décimaux/hexadécimaux. L’outil propose aussi la conversion et la translittération vers ASCII quand c’est pertinent.

✅ Détection automatique

Octets > 0x7F, contrôles, retours de ligne, tabulations

📊 Table de codes

Décimal, hex, binaire, nom du caractère, position

🧹 Conversion

Translittération intelligente vers ASCII, remplacements sûrs

💾 Export propre

Texte compatible ASCII prêt à intégrer

Autres méthodes de détection

Affichage dans l'éditeur

Activez "render whitespace", "show control characters" dans VS Code, JetBrains, Sublime
Affichez les codes (hex/dec) au survol via une extension

En ligne de commande (Unix)

# Trouver les octets hors plage ASCII (0x00–0x7F)
grep -P "[^\x00-\x7F]" fichier.txt
# Voir les fins de ligne et tabulations
sed -n l fichier.txt
# Afficher les caractères de contrôle
cat -A fichier.txt
# Voir les codes hexadécimaux
hexdump -C fichier.txt

En code

JavaScript

Array.from(str).map(c => c.charCodeAt(0).toString(16))

Python

[f"{ord(c):04x}" for c in s if ord(c) > 126 or ord(c) < 32]

Excel / Google Sheets

CODE(MID(cellule;position;1))

Nettoyer et prévenir

🚀 Solution rapide avec Clean ASCII

Avant d’écrire des scripts, utilisez Clean ASCII pour vérifier et convertir votre texte vers la table ASCII de façon sûre :

Détection automatique
Translittération ASCII
Export immédiat

Méthodes techniques avancées

🔧 Normaliser

Translittérez (NFKD) les accents avant filtrage ASCII
Supprimez les BOM inutiles dans les fichiers UTF-8
Uniformisez les fins de ligne (dos2unix, gitattributes)

🧹 Filtrer

Écrivez des fonctions ascii_only() qui conservent 0x09, 0x0A, 0x0D et 0x20–0x7E
Remplacez les guillemets typographiques par des quotes ASCII simples
Bloquez les caractères de contrôle hors LF/CR/HT

⚙️ Automatiser

Hooks pre-commit refusant les fichiers contenant des octets > 0x7F
Tests de sanitation pour forcer ASCII sur les inputs sensibles
Linting encodage sur le pipeline CI

Checklist rapide

Flux en ASCII strict ou UTF-8 sans BOM selon besoin
Fins de ligne uniformes via gitattributes
Outil affichant les blancs et caractères de contrôle
Fonction de nettoyage ASCII dans vos libs
Tests vérifiant l'absence d'octets > 0x7F
Documentation développeurs sur ASCII, encodages et retours à la ligne

Conclusion

La table ASCII est un socle commun. La connaître et la reconnaître dans vos flux texte réduit drastiquement les surprises.

Vérifiez la conformité ASCII, uniformisez vos fins de ligne et mettez en place des contrôles automatiques : vous éliminez l’essentiel des erreurs d’encodage.

Consultez la table ASCII et validez vos textes

Utilisez notre outil pour analyser les codes, repérer les octets hors ASCII et exporter un contenu propre.

Analyser mon texte