Qu'est-ce que le zero width joiner ?
Le ZWJ est un caractère de formatage Unicode invisible qui indique au moteur de rendu d’unir des glyphes adjacents.
Les éléments essentiels à connaître sur le ZWJ :
1 Définition et code Unicode
Caractère invisible de catégorie Cf (Format) utilisé pour joindre des glyphes.
2 ZWJ vs ZWNJ et autres contrôles
Le ZWNJ (U+200C) empêche la jonction, le ZWJ (U+200D) l’encourage.
3 Caractères proches souvent confondus
Ils sont invisibles mais n’ont pas le même rôle :
4 Utilisations courantes du ZWJ
Typographie, écritures complexes et émojis :
Problèmes classiques
Copier-coller depuis le web, Slack ou Word
Insère des ZWJ dans des identifiants, chemins ou CSV (surtout autour d’émojis).
Tests unitaires qui échouent
Une chaîne contient un ZWJ (U+200D) invisible qui fait planter une égalité stricte.
Trim() ou strip() inefficace
Le ZWJ n’est pas un espace : les trims n’y touchent pas et les validations passent à côté.
Regex qui ratent le contrôle de format
Le ZWJ est un caractère de format (Cf) : ni \s ni \w ne le couvrent toujours. Utilisez \x{200D} ou \p{Join_Control} quand disponible.
Exemple de problème courant :
Symptômes qui doivent vous alerter
🚨 Signaux d'alarme
Comment les détecter
✨ Solution recommandée : Clean ASCII
Clean ASCII repère instantanément le zero width joiner et autres caractères invisibles. L’analyse met en évidence U+200D, son contexte et les positions exactes pour un correctif immédiat.
✅ Détection automatique
ZWJ, ZWNJ, ZWSP, NBSP, BOM, soft hyphens, contrôles
📊 Analyse complète
Codes Unicode, emplacements, contexte d’usage et conseils
🧹 Nettoyage automatique
Suppression ou substitution raisonnée des joiners superflus
💾 Export propre
Téléchargez un texte nettoyé, prêt pour vos pipelines
Autres méthodes de détection
Affichage dans l'éditeur
En ligne de commande (Unix)
En code
JavaScript
Python
Excel / Google Sheets
Nettoyer et prévenir
🚀 Solution rapide avec Clean ASCII
Avant de coder un correctif sur-mesure, passez votre texte dans Clean ASCII pour détecter et retirer les ZWJ hors contexte.
Méthodes techniques avancées
🔧 Normaliser
🧹 Filtrer
trim_joiners() pour effacer U+200D hors whitelist
⚙️ Automatiser
Checklist rapide
Conclusion
Le zero width joiner est discret mais déterminant. Bien géré, il améliore le rendu; ignoré, il complique vos traitements.
Mettez en place une détection systématique d’U+200D, contrôlez son usage et standardisez vos flux pour éviter les surprises.
Détectez le zero width joiner maintenant
Utilisez notre outil pour identifier et nettoyer le ZWJ et autres caractères invisibles dans vos textes.
Analyser mon texte