Intermédiaire 8 min de lecture 25 janvier 2025

Straight quotes : comprendre, détecter et convertir

Vous tapez un texte, tout a l’air correct… jusqu’au moment où un JSON refuse de parser, un CSV éclate une colonne ou un script shell plante. Les straight quotes (apostrophes et guillemets droits) se confondent souvent avec les smart quotes typographiques. Résultat : de minuscules différences visuelles provoquent des erreurs bien réelles. Voici comment les reconnaître et les traiter efficacement.

Que sont les straight quotes ?

Ce sont les guillemets et apostrophes droits ASCII (' et ") utilisés en code, formats de données et nombreux protocoles.

Voici les principales familles de signes de citation à connaître :

1 Straight quotes ASCII de base

Les caractères attendus dans la plupart des formats techniques.

Apostrophe ' (39), Guillemet " (34), Backtick ` (96)

2 Smart quotes typographiques

Visuellement proches, mais différents en Unicode :

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

3 Guillemets locaux et symboles proches

Souvent confondus avec des quotes standards :

« (U+00AB), » (U+00BB) - Guillemets français
‹ (U+2039), › (U+203A) - Guillemets simples
′ (U+2032), ″ (U+2033) - Primes (minutes/secondes), pas des guillemets

4 Variantes techniques et plein-chasse

Formes Unicode qui ressemblent à des quotes mais perturbent les parsers :

Fullwidth " (U+FF02), Fullwidth ' (U+FF07)
Modifier Letter Apostrophe (U+02BC)
Quotes verticales et formes de compatibilité (U+275B…U+275E)

Problèmes classiques

Copier-coller depuis le web ou Word

Introduit des smart quotes dans du code, des JSON ou des CSV qui attendent des straight quotes.

Tests unitaires qui échouent

Une chaîne contient ’ ou ” au lieu de ' ou " et les comparaisons ne correspondent plus.

Normalisation absente

Les fonctions de nettoyage n’uniformisent pas les quotes, les parsers divergent selon l’entrée.

Regex trop strictes

Les expressions régulières n’autorisent que ' et " et ignorent les variantes Unicode utilisées par les utilisateurs.

Exemple de problème courant :

# Chaînes qui semblent identiques mais ne le sont pas
string1 = "L'API répond"
string2 = "L’API répond" # Contient U+2019 (apostrophe typographique)
assert string1 == string2 # ❌ Échec

Symptômes qui doivent vous alerter

🚨 Signaux d'alarme

!
Un diff git affiche des changements de contenu alors que rien ne semble visuellement différent
!
Un CSV avec des smart quotes n’est plus correctement délimité par des guillemets droits
!
Votre .env ne charge pas une valeur entre guillemets typographiques
!
En déplaçant le curseur, l’éditeur s’arrête sur un caractère de citation inattendu
!
Une commande shell échoue car les arguments sont entourés de typographic quotes

Comment les détecter

Solution recommandée : Clean ASCII

Clean ASCII repère instantanément les smart quotes et toutes les variantes de citations non-ASCII. Vous visualisez précisément où elles se trouvent et comment les remplacer par des straight quotes sûres.

✅ Détection automatique

‘ ’ “ ” « » ‹ › primes, fullwidth, apostrophe modifiée

📊 Analyse complète

Codes Unicode, positions exactes, suggestions de conversion

🧹 Nettoyage automatique

Remplacement fiable vers ' et " selon vos préférences

💾 Export propre

Contenu normalisé, prêt pour JSON, CSV, YAML, shell

Autres méthodes de détection

Affichage dans l'éditeur

Activez la mise en évidence des caractères non-ASCII ou typographiques
Installez une extension qui surligne ‘ ’ “ ” et propose leur conversion

En ligne de commande (Unix)

# Rechercher les guillemets typographiques
grep -P "[\x{2018}\x{2019}\x{201C}\x{201D}]" fichier.txt
# Voir les occurrences non-ASCII dans le flux
sed -n l fichier.txt
# Afficher les caractères spéciaux
cat -A fichier.txt
# Inspecter les codes hexadécimaux
hexdump -C fichier.txt

En code

JavaScript

str.replace(/[‘’]/g, "'").replace(/[“”]/g, '"')

Python

re.sub(r"[“”]", '"', re.sub(r"[‘’]", "'", s))

Excel / Google Sheets

SUBSTITUE(SUBSTITUE(A1;CAR(8217);CAR(39));CAR(8221);CAR(34))

Nettoyer et prévenir

🚀 Solution rapide avec Clean ASCII

Avant d’écrire des scripts maison, utilisez Clean ASCII pour transformer immédiatement toutes les citations en straight quotes sûrs.

Détection smart quotes
Nettoyage configurable (' ou ")
Export immédiat

Méthodes techniques avancées

🔧 Normaliser

Appliquez une normalisation de ponctuation (remplacement de ‘ ’ “ ” par ' et ")
Uniformisez la convention de citation dans votre base de code (ESLint/Prettier, Black, etc.)
Forcer l’entrée utilisateurs vers des straight quotes côté backend

🧹 Filtrer

Écrivez une fonction straighten_quotes() qui remplace toutes les variantes Unicode
Remplacez les guillemets français « » uniquement si votre format ne les supporte pas
Bloquez les formes fullwidth et l’apostrophe modifiée en entrée

⚙️ Automatiser

Hooks pre-commit pour refuser les smart quotes et appliquer un fixer
Tests qui valident la présence exclusive de ' et " dans les formats techniques
Linting dans la CI pour standardiser les styles de citation

Checklist rapide

Convention de citation définie (simple ou double) dans le code
Extensions éditeur bloquant les smart quotes à la saisie
Fonction de normalisation des quotes dans vos libs communes
Tests de parsing CSV/JSON validant les straight quotes
Hook pre-commit qui remplace ‘ ’ “ ” par ' et "
Documentation interne sur typographie et formats pris en charge

Conclusion

Les straight quotes paraissent anodins, pourtant la moindre variation typographique peut casser un parseur, un script ou un pipeline de données.

En détectant systématiquement les smart quotes et en imposant des straight quotes cohérents, vous éliminez une grande part des bugs discrets liés à la typographie.

Détectez et convertissez les straight quotes maintenant

Utilisez notre outil pour identifier et remplacer les smart quotes par des straight quotes sûrs dans vos textes.

Analyser mon texte