Comprendre Unicode en JavaScript
JavaScript stocke ses chaînes en UTF‑16. Il faut distinguer unités de code (16 bits) et points de code Unicode pour éviter des erreurs.
Points clés à connaître pour travailler correctement avec Unicode en JavaScript :
1 Unités de code UTF‑16 en JavaScript
length compte des unités de code, pas des caractères utilisateur.
2 Paires de substitution (surrogate pairs)
Les points de code > U+FFFF sont encodés en deux unités de code.
3 Points de code et espaces Unicode fréquents
Certains blancs et séparateurs perturbent la comparaison et le parsing :
4 Marques techniques et modificateurs
Éléments qui changent le rendu ou la sémantique des glyphes :
Problèmes classiques
Copier-coller d’emojis ou lettres accentuées
Ajoute ZWJ, sélecteurs de variation ou normalisation différente (NFC/NFD) dans les données.
Tests unitaires qui échouent
Comparaisons strictes fausses entre "é" (U+00E9) et "é" (e + U+0301), longueurs inattendues.
trim() inefficace
Ne supprime pas ZWSP/ZWJ ni certaines marques combinantes utilisées avec Unicode.
Regex \s ou \w incomplètes
Sans le flag u, \w est ASCII‑centré et . peut couper des paires de substitution.
Exemple de problème courant :
Symptômes qui doivent vous alerter
🚨 Signaux d'alarme
length retourne 2 pour un seul emoji affiché
slice() ou substring() coupe un drapeau ou un pictogramme
u a des résultats incohérents sur des accents/emoji
Comment les détecter
✨ Solution recommandée : Clean ASCII
Clean ASCII repère immédiatement les caractères Unicode ambigus dans vos chaînes JavaScript. Il met en évidence ZWJ, ZWSP, sélecteurs de variation, marques combinantes et caractères de contrôle.
✅ Détection automatique
NBSP, ZWSP, ZWJ, BOM, soft hyphens, marques combinantes
📊 Analyse précise
Points de code, positions exactes, nature du caractère
🧹 Nettoyage ciblé
Remplacement ou suppression des caractères problématiques
💾 Export propre
Texte nettoyé prêt pour vos scripts et tests
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 d’écrire des utilitaires, utilisez Clean ASCII pour traquer et supprimer les caractères Unicode piégeux dans vos chaînes JavaScript.
Méthodes techniques avancées
🔧 Normaliser
str.normalize("NFC") ou "NFKC" pour homogénéiser
🧹 Filtrer
stripZeroWidth() pour retirer ZWSP/ZWJ
⚙️ Automatiser
u, règles ESLint pertinentes)
Checklist rapide
Conclusion
Unicode en JavaScript est subtil: unités de code, points de code, combinaisons et modificateurs impactent vos chaînes.
Adoptez la normalisation, utilisez le flag u en regex, segmentez par grapphèmes au besoin et détectez les caractères invisibles pour éviter les bugs chroniques.
Analysez vos chaînes JavaScript/Unicode maintenant
Utilisez notre outil pour repérer et nettoyer les caractères Unicode problématiques dans vos textes.
Analyser mon texte