Guillemets courbes et tirets qui cassent le code : comment les redresser
Les guillemets courbes, les apostrophes courbes, les tirets demi-cadratin et cadratin et les espaces insécables ressemblent à leurs versions simples, mais un ordinateur les traite comme des caractères différents. Le code, les fichiers CSV, les formules de tableur et les lignes de commande attendent les versions simples. Une citation collée cesse d'être une chaîne de caractères, un double tiret dans une option devient un tiret, et une espace insécable peut empêcher un programme de lire une ligne. Redressez les caractères avant de coller dans du code, puis testez le résultat là où il sera exécuté.
Corriger un texte colléLe texte collé a des lignes coupéesEssayer gratuitementD'où viennent ces caractères
Les traitements de texte et de nombreux logiciels de messagerie remplacent les guillemets droits par des guillemets courbes pendant la frappe. C'est ce qu'on appelle les guillemets typographiques. Word peut aussi transformer deux tirets en tiret cadratin. Les pages web et certains éditeurs insèrent des espaces insécables, U+00A0, qui empêchent deux mots de se couper en fin de ligne. Ces caractères sont corrects sur le plan typographique, c'est pourquoi ils apparaissent. Ils sont en revanche incorrects pour tout ce qu'un programme lit.
Ce qui casse, et où
| Où | Ce qui ne va pas |
|---|---|
| Code source | Les guillemets courbes ne délimitent pas les chaînes, et beaucoup de langages rejettent un guillemet courbe ou une espace insécable en dehors d'une chaîne |
| Commandes shell | Un tiret saisi comme tiret demi-cadratin n'est pas reconnu comme marqueur d'option, donc le programme voit un argument inconnu |
| Fichiers CSV | Les analyseurs entourent les champs de guillemets droits, donc les guillemets courbes ne protègent pas une virgule à l'intérieur d'un champ |
| Formules de tableur | Les guillemets courbes deviennent une partie du texte, ou la formule renvoie une erreur |
| JSON | Les guillemets courbes ne sont pas des délimiteurs de chaîne valides, donc l'analyseur échoue |
Pour les règles de guillemets suivies par les fichiers CSV, consultez le guide CSV vers JSON.
Les redresser avec fixmint
Trois outils couvrent les cas courants, et chacun gère un ensemble de caractères différent.
- Guillemets courbes. Ouvrez Corriger un texte collé et cochez Redresser les guillemets courbes. Il transforme les guillemets simples et les apostrophes courbes en apostrophe droite, et les guillemets doubles courbes en guillemets droits. Il laisse les tirets intacts. Ses autres options, comme couper les espaces en début de ligne ou réduire les espaces répétés, sont cochées par défaut.
- Tirets, points de suspension et espaces particulières. Ouvrez Supprimer les caractères invisibles et cochez Convertir aussi les guillemets courbes, les tirets demi-cadratin et cadratin et … en ASCII simple. Les tirets deviennent un trait d'union et les points de suspension deviennent trois points. Les espaces insécables deviennent des espaces normales par défaut. La vue marquée indique où chaque modification a été faite.
- Un seul caractère ou une expression. Ouvrez Rechercher et remplacer, laissez Regex désactivé, et saisissez le caractère dans Rechercher et sa version simple dans Remplacer. Avec Regex désactivé, la zone Rechercher est littérale, donc un guillemet courbe ne correspond qu'à lui-même.
Voici le deuxième outil appliqué à un collage typique :
| Avant | Après |
|---|---|
| “Hello,” she said. | "Hello," she said. |
| It’s done. | It's done. |
| —verbose | -verbose |
La dernière ligne montre une limite. Chaque tiret devient un trait d'union, donc un double tiret qu'un traitement de texte a fusionné en un seul tiret cadratin revient sous la forme d'un seul trait d'union. Corrigez à la main les options comme --verbose après la conversion.
Collez le résultat là où il sera exécuté et testez-le sur place. Redresser les caractères ne change pas le sens du texte, donc une exécution réussie est le véritable contrôle.
Vérifier le résultat
Relancez le texte redressé dans Supprimer les caractères invisibles et lisez la vue marquée. Toute marque restante correspond à un caractère que la première passe n'a pas couvert, comme une espace de largeur nulle ou une espace inhabituelle. La vue marquée indique où se trouve chacun d'eux, vous pouvez donc le corriger sur place.
Les caractères paraissent presque identiques à l'écran, donc un contrôle visuel les manque. Un guillemet droit et un guillemet courbe ne diffèrent que légèrement de forme, et un tiret demi-cadratin ressemble à un trait d'union dans beaucoup de polices. Testez le texte, pas vos yeux.
Quand ne pas redresser
Gardez les guillemets et tirets courbes dans les textes destinés à être lus sur papier ou sur une page web. C'est là la bonne typographie. Ne redressez que le contenu qui ira dans du code, un CSV, une formule ou une commande. Pour un texte rédigé dans un traitement de texte, désactivez l'option des guillemets typographiques si vous comptez le coller dans du code plus tard.
Cas particuliers
- Guillemets mélangés. Un document peut mélanger guillemets courbes et droits. Lancez l'étape de redressement une fois, puis recherchez dans le résultat ceux qui subsistent, car les sources diffèrent.
- Apostrophes dans les mots. Une apostrophe courbe dans une contraction devient une apostrophe droite, ce que la plupart des codes attendent. Vérifiez les contractions qui apparaissent à l'intérieur d'une chaîne.
- Conservez la source. Le redressement est à sens unique : un guillemet droit ne permet pas de savoir de quel guillemet courbe il provient. Gardez le document d'origine et effectuez la modification sur une copie.
- Tirets dans les phrases. Un tiret cadratin utilisé comme incise devient un trait d'union, donc « wait — stop » devient « wait - stop ». Retapez-le à la main si le texte est destiné à être lu plutôt qu'exécuté.
- Caractères invisibles. Un texte collé peut aussi contenir des espaces de largeur nulle. Ce ne sont pas des guillemets, mais ils cassent le code d'une façon comparable. Le guide sur les caractères invisibles les traite en détail.
Traduit de Version originale anglaise avec l’aide de l’IA.
Commentaires
Aucun commentaire pour l’instant. Soyez le premier.


