Intermédiaire 8 min de lecture 25 janvier 2025

Guillemets typographiques : erreurs fréquentes, bonnes pratiques et solutions

On pense aux apostrophes et aux guillemets seulement quand tout casse : JSON invalide, CSV mal parsé, chaînes inégales, rendu HTML étrange. Les “smart quotes” et les « guillemets français » rendent les textes plus jolis, mais peuvent semer le chaos dans un contexte technique. Voici comment les comprendre, les détecter et les corriger sans douleur.

Qu'est-ce qu'un guillemet typographique ?

Ce sont des signes de ponctuation ouvrants/fermants utilisés pour les citations. Contrairement aux guillemets droits ASCII, ils ont des formes courbes et des variations selon les langues (français « », anglais “ ”) et s'accompagnent parfois d'espaces fines.

Voici les principales familles de guillemets et signes associés :

1 Guillemets droits ASCII

Guillemets simples et doubles, typiques du code et des formats techniques.

Apostrophe ' (39), Double quote " (34), Backtick ` (96)

2 Guillemets typographiques anglais (“ ”, ‘ ’)

Aussi appelés “curly quotes” ou “smart quotes”. Très fréquents après un copier-coller.

“ (U+201C), ” (U+201D), ‘ (U+2018), ’ (U+2019)

3 Guillemets français et espaces fines

En français, les guillemets « » s’emploient avec une espace fine insécable à l’intérieur.

« (U+00AB), » (U+00BB)
Espace fine insécable U+202F (recommandée)
Espace insécable U+00A0 (souvent rencontrée)

4 Variantes et caractères proches

Signes qui ressemblent à des guillemets mais n'ont pas la même fonction.

Apostrophe typographique ’ (U+2019)
Guillemets simples français ‹ (U+2039), › (U+203A)
Low double comma „ (U+201E)
Prime ′ (U+2032), Double prime ″ (U+2033)

Problèmes classiques

Copier-coller depuis le web ou Word

Introduit des “smart quotes” qui rendent JSON/YAML invalides ou cassent des commandes shell.

Tests unitaires qui échouent

Une chaîne contient ’ au lieu de ' ou “ ” au lieu de " et la comparaison échoue.

Échappement et parsing fragiles

Les guillemets courbes ne sont pas reconnus par les parsers, les escapes et les split() classiques.

Regex incomplètes

Beaucoup de regex ne couvrent que ' et " et laissent passer “ ” ou ’.

Exemple de problème courant :

# Données qui semblent identiques mais diffèrent par l'apostrophe
string1 = "l'amour"
string2 = "l’amour" # Contient U+2019 (apostrophe typographique)
assert string1 == string2 # ❌ Échec

Symptômes qui doivent vous alerter

🚨 Signaux d'alarme

!
Un diff git montre des remplacements de ' par ’ ou de " par “ ” sans changement apparent
!
Des parse CSV/JSON échouent ou des split() ne respectent plus le délimiteur
!
Un .env refuse une valeur car les guillemets utilisés ne sont pas ASCII
!
L’éditeur affiche des guillemets courbes quand vous déplacez le curseur
!
Un copier-coller dans un terminal provoque une commande non trouvée

Comment les détecter

Solution recommandée : Clean ASCII

Clean ASCII repère instantanément les guillemets typographiques et l’apostrophe ’ dans vos textes. Il met en évidence “ ”, ‘ ’, « » et suggère des remplacements sûrs pour le code, le CSV et le HTML.

✅ Détection automatique

“ ”, ‘ ’, « », ‹ ›, apostrophes et espaces fines insécables

📊 Analyse complète

Codes Unicode, positions exactes, propositions de normalisation

🧹 Nettoyage automatique

Conversion vers ' et " en contexte technique, ou vers « » en HTML

💾 Export propre

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

Autres méthodes de détection

Affichage dans l'éditeur

Activez l’affichage des caractères spéciaux et des espaces dans VS Code, JetBrains, Sublime
Désactivez la substitution automatique en “smart quotes” au niveau OS/éditeur

En ligne de commande (Unix)

# Rechercher les guillemets typographiques dans un fichier
grep -P "[\x{2018}\x{2019}\x{201C}\x{201D}\x{00AB}\x{00BB}\x{2039}\x{203A}]" fichier.txt
# Visualiser les espaces fines et insécables autour de « »
sed -n 'l' fichier.txt
# Afficher visuellement les caractères spéciaux
cat -A fichier.txt
# Inspecter les octets UTF-8 (E2 80 9C/9D/98/99)
hexdump -C fichier.txt

En code

JavaScript

str.replace(/[\u2018\u2019]/g, "'").replace(/[\u201C\u201D]/g, '"')

Python

s.translate({0x2018:0x27, 0x2019:0x27, 0x201C:0x22, 0x201D:0x22})

Excel / Google Sheets

SUBSTITUTE(SUBSTITUTE(A1; "“"; """"); "”"; """")

Nettoyer et prévenir

🚀 Solution rapide avec Clean ASCII

Avant d’écrire des scripts, passez vos contenus dans Clean ASCII pour remplacer automatiquement “ ” par " et ’ par ' dans le code, ou convertir « » en entités HTML avec l’espace fine.

Détection des guillemets typographiques
Nettoyage et normalisation sûrs
Export immédiat

Méthodes techniques avancées

🔧 Normaliser

Utilisez Unicode NFC/NFKC pour homogénéiser les caractères
Décidez : ASCII (' et ") dans le code, typographiques (“ ”, « ») dans le contenu éditorial
En français, utilisez «  » avec espace fine insécable (U+202F) à l’intérieur

🧹 Filtrer

Écrivez une fonction sanitize_quotes() pour convertir “ ” ‘ ’ en " et '
Remplacez « » par « » côté HTML si nécessaire
Bloquez les guillemets typographiques dans les fichiers sensibles (.env, JSON, scripts)

⚙️ Automatiser

Hooks pre-commit pour refuser des fichiers contenant “ ” ‘ ’ dans le code
Tests de validation sur les entrées utilisateurs et contenus importés
Linting dans la CI et règles EditorConfig/Prettier adaptées

Checklist rapide

Règles d’éditeur désactivant les “smart quotes” dans le code
Convention claire : ASCII en technique, typographiques en éditorial
Vérification des espaces fines autour de « » pour le français
Fonction de normalisation des guillemets dans vos libs
Tests interdisant “ ” ‘ ’ dans .env/JSON/scripts
Documentation pour rédacteurs et développeurs sur l’usage des guillemets

Conclusion

Les guillemets typographiques améliorent la lisibilité, mais exigent de la rigueur dans les environnements techniques.

Détectez-les systématiquement, normalisez selon le contexte et vous éviterez l’essentiel des erreurs de parsing, d’encodage et de comparaison.

Détectez et normalisez vos guillemets maintenant

Utilisez notre outil pour repérer et convertir les guillemets typographiques en versions adaptées à votre usage.

Analyser mon texte