Intermédiaire 8 min de lecture 25 janvier 2025

Six per em space (U+2006) : problèmes courants et solutions concrètes

Le six per em space est un espace typographique Unicode de largeur fractionnaire. Invisible au premier coup d’œil, il se glisse dans les emails, CSV, variables d’environnement et chaînes de code, puis casse comparaisons, parsings et regex. Voici comment reconnaître U+2006, pourquoi il dérange et comment le neutraliser efficacement.

Qu'est-ce que le six per em space ?

U+2006 est un espace d’un sixième de cadratin. Il ne laisse pas de trace visible standard, ressemble à un espace classique mais n’est pas U+0020, ce qui perturbe de nombreux outils.

Où se situe le six per em space dans la galaxie des espaces :

1 Espaces et séparateurs classiques ASCII

N’incluent pas le six per em space : ASCII ne définit que l’espace simple et les séparateurs de contrôle.

Espace (32), Tab (9), CR (13), LF (10)

2 Caractères de contrôle ASCII

Codes 0 à 31 et 127 : à ne pas confondre avec U+2006, qui est un espace Unicode imprimable.

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

3 Espaces et séparateurs Unicode non-standard

Parmi les plus piégeux en pratique :

Six per em space (U+2006) - Espace d’un sixième de cadratin
NBSP (U+00A0) - Espace insécable
ZWSP (U+200B) - Zero Width Space
Thin Space (U+2009), Hair Space (U+200A)

4 Marques techniques

Différentes d’un espace typographique comme U+2006, mais souvent rencontrées ensemble :

BOM (U+FEFF) - Byte Order Mark
Soft Hyphen (U+00AD) - Tiret conditionnel
LRM, RLM, LRE, RLE - Contrôles Bidi

Problèmes classiques

Copier-coller depuis le web ou Word

Ajoute un six per em space au lieu d’un espace classique, ce qui casse des CSV, URLs ou requêtes.

Tests unitaires qui échouent

U+2006 se faufile dans une chaîne attendue, les égalités exactes échouent et les snapshots diffèrent.

Trim() ou strip() inefficace

Les fonctions standard n’enlèvent pas U+2006 par défaut, il reste en début/fin de chaîne.

Regex \s ou \w incomplètes

Selon le moteur et le mode Unicode, \s ne matche pas toujours U+2006, d’où des filtres partiels.

Exemple de problème courant :

# Deux emails semblent identiques mais diffèrent d’un U+2006
string1 = "email@domain.com"
string2 = "email@domain.com " # Contient U+2006 (six per em space) à la fin
assert string1 == string2 # ❌ Échec

Symptômes qui doivent vous alerter

🚨 Signaux d'alarme

!
Un diff git montre des changements invisibles : U+2006 s’est glissé dans la ligne
!
Un split() CSV échoue ou crée une colonne fantôme à cause d’un six per em space
!
Un .env ne charge pas une clé car U+2006 entoure le séparateur
!
Le curseur saute sur un “vide” inhabituel ou un petit carré en se déplaçant
!
Coller une commande dans le terminal ajoute un U+2006 et provoque une erreur

Comment le détecter

Solution recommandée : Clean ASCII

Clean ASCII repère immédiatement le six per em space (U+2006) et les autres espaces Unicode piégeux. L’analyse affiche les positions exactes, les codes et propose un remplacement sûr pour vos pipelines.

✅ Détection automatique

Six per em space (U+2006), NBSP, ZWSP, soft hyphens, contrôles

📊 Analyse complète

Codes Unicode, positions exactes, prévisualisation du nettoyage

🧹 Nettoyage automatique

Remplacement de U+2006 par espace ASCII ou suppression contrôlée

💾 Export propre

Téléchargement du texte nettoyé prêt à intégrer

Autres méthodes de détection

Affichage dans l'éditeur

Activez l’affichage des espaces (“render whitespace”) pour repérer U+2006 dans VS Code, JetBrains, Sublime
Installez un linter qui surligne spécifiquement les espaces Unicode comme U+2006

En ligne de commande (Unix)

# Sortir les octets hors ASCII imprimable (U+2006 sera listé)
grep -P "[^\x09\x0A\x0D\x20-\x7E]" 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

const cleaned = str.replace(/\u2006/g, ' ');

Python

cleaned = s.replace("\u2006", " ")

Excel / Google Sheets

SUBSTITUE(A1;CAR(8198);" ")

Nettoyer et prévenir

🚀 Solution rapide avec Clean ASCII

Avant d’écrire des scripts, utilisez Clean ASCII pour détecter et remplacer le six per em space (U+2006) en un clic :

Détection de U+2006
Nettoyage intelligent vers espace ASCII
Export immédiat

Méthodes techniques avancées

🔧 Normaliser

Vérifiez la normalisation Unicode (NFC/NFKC) : elle n’enlève pas U+2006, prévoyez un filtrage dédié
Supprimez les BOM inutiles pour éviter des surprises avec les espaces typographiques
Uniformisez les fins de ligne (dos2unix, gitattributes) pour faciliter le diff et la revue

🧹 Filtrer

Écrivez des fonctions trim_all() qui retirent U+2006 en plus des blancs classiques
Remplacez U+2006 par espace simple pour les données, conservez-le seulement pour la typographie UI
Bloquez les caractères de contrôle hors LF/CR/HT et les espaces Unicode non attendus

⚙️ Automatiser

Hooks pre-commit pour refuser les fichiers contenant U+2006 en zones critiques
Tests d’assainissement des inputs utilisateurs afin d’éliminer U+2006 à l’entrée
Linting sur la CI pour scanner les espaces Unicode problématiques

Checklist rapide

Fichiers en UTF-8 sans BOM, prêts à repérer U+2006 clairement
Fins de ligne uniformes via gitattributes pour limiter le bruit dans les diffs contenant U+2006
Outil affichant les blancs et espaces Unicode (dont six per em space) dans l'éditeur
Fonction de nettoyage supprimant U+2006 et remplaçant par espace ASCII si nécessaire
Tests vérifiant l'absence d’espaces typographiques indésirables en sortie
Documentation équipe sur U+2006 et l’impact des espaces Unicode

Conclusion

Le six per em space est minuscule, mais ses effets ne le sont pas. Un simple U+2006 peut casser vos comparaisons, vos exports et vos parsers.

Adoptez une détection systématique de U+2006, filtrez-le au plus tôt et standardisez vos flux : vous éviterez une grande partie des bugs de texte et d’encodage.

Détectez le six per em space maintenant

Utilisez notre outil pour identifier et nettoyer le six per em space (U+2006) dans vos contenus.

Analyser et supprimer le six per em space