Échappement et déséchappement de chaîne
Échappez et déséchappez des chaînes pour JavaScript, JSON, SQL, HTML, URL et expressions régulières — choisissez un contexte et c'est parti.
Qu'est-ce que l'échappement de chaîne ?
Chaque syntaxe textuelle — JSON, SQL, HTML, URL, regex — a des caractères spéciaux qui signifient autre chose qu'eux-mêmes. Mettre un ' non échappé dans une chaîne SQL peut casser une requête (ou ouvrir la porte à une injection). Un < non échappé en HTML dessine une balise. Un ? littéral dans une URL devient un séparateur de requête. L'échappement convertit ces caractères en une forme sûre que le parseur relira comme le caractère original. Le déséchappement est l'inverse — transformer une chaîne JSON ou HTML en sa forme nue.
Comment utiliser l'outil d'échappement
Choisissez un contexte qui correspond à la syntaxe avec laquelle vous travaillez — JavaScript, JSON, SQL, HTML, composant d'URL ou littéral regex. Choisissez Échapper pour convertir du texte brut en forme sûre pour le contexte, ou Déséchapper pour faire l'inverse. Collez votre entrée. La sortie se met à jour en direct, avec un comptage de caractères pour vérifier. Chaque contexte applique précisément les règles de sa syntaxe : JS utilise \n, \t, \" ; SQL double les apostrophes ; HTML utilise des entités ; URL utilise le percent-encoding.
Choisir le bon contexte
Si vous allez intégrer la chaîne dans du code JavaScript, utilisez JavaScript. Si vous la placez dans une valeur JSON (par ex. un fichier de config ou un payload d'API), utilisez JSON — c'est plus strict que JS. HTML est le bon choix pour du contenu rendu sur une page (sûr aussi pour les valeurs d'attributs HTML). URL est pour les valeurs individuelles de paramètres de requête, pas pour les URL complètes (qui contiennent déjà :// et ? comme caractères structurels). Regex échappe une chaîne littérale pour usage dans une expression régulière — utile pour matcher de la saisie utilisateur telle quelle.
Exemples par contexte
| Contexte | Entrée | Sortie |
|---|---|---|
| JavaScript | It's "fine" | It\'s \"fine\" |
| JSON | line1\nline2 | line1\\nline2 |
| SQL | O'Brien | O''Brien |
| HTML | <b> & "x" | <b> & "x" |
| URL | a b/c?d=1 | a%20b%2Fc%3Fd%3D1 |
| Regex | 3.14 (pi) | 3\.14 \(pi\) |
Questions fréquentes
Pourquoi des modes JavaScript et JSON séparés ?
\', \v, \0, les échappements hexadécimaux (\xHH) ni les caractères de contrôle non guillemetés. JS est plus permissif. Si vous construisez un document JSON, utilisez JSON ; si vous intégrez une chaîne dans une source .js, utilisez JavaScript. Les confondre peut produire des chaînes qui crashent un parseur JSON.Faut-il l'utiliser pour des requêtes SQL pour éviter l'injection ?
Quelle différence entre encodeURIComponent et encodeURI ?
?, &, =, / et compagnie — c'est sûr à déposer dans une valeur de paramètre de requête. L'encodage d'URL complète laisse ces caractères tranquilles parce qu'ils ont un sens structurel. Si vous encodez une valeur qui va après un = dans une URL, ce mode est ce qu'il vous faut.L'échappement HTML produit-il une sortie sûre pour attribut ou pour contenu ?
<, >, &, " et ' — c'est un sur-ensemble de ce qui est strictement nécessaire dans chacun des deux contextes, donc le résultat est sûr à déposer dans le contenu d'un élément ou dans tout attribut (entre guillemets simples ou doubles).Que échappe le mode regex ?
\, ^, $, ., *, +, ?, (, ), [, ], {, }, |, /, -. Le résultat peut être utilisé dans une regex pour matcher la chaîne d'origine littéralement — pratique quand vous avez de la saisie utilisateur que vous voulez retrouver telle quelle.