Escapar i desescapar cadenes
Escapa o desescapa una cadena per a JSON, JavaScript, plantilles literals, SQL, CSV, atributs HTML, expressions regulars i URL, directament al navegador.
Escapar no substitueix les consultes parametritzades (sentències preparades). Fes servir aquesta sortida per llegir o depurar SQL, mai per construir consultes a partir de dades de l'usuari.
Com escapar o desescapar una cadena
- Tria la destinació a Format: cadena JSON, cadena JavaScript, plantilla literal JavaScript, literal de cadena SQL, camp CSV, valor d’atribut HTML, expressió regular o component d’URL.
- Escriu o enganxa el text al quadre d’entrada.
- Fes clic a Escapa per convertir text net en un literal segur, o a Desescapa per tornar un literal a text net. El resultat s’actualitza mentre escrius, en la direcció que has triat per últim cop.
- Ajusta les opcions que es mostren per al format: Afegeix cometes al voltant, Escapa els caràcters no ASCII o Espais com a + (dades de formulari).
- Fes clic a Copia, o a Fes servir la sortida com a entrada per invertir l’operació i comprovar el recorregut d’anada i tornada.
El recompte de caràcters d’abans i d’après es mostra sota els botons. Tot s’executa al teu navegador; no es puja res.
Què fa cada format
- Cadena JSON: escapa
",\i els caràcters de control (\n,\t,\u0000…), exactament comJSON.stringify. Amb Escapa els caràcters no ASCII, cada caràcter per sobre d’U+007E es converteix en\uXXXX(els emojis es converteixen en un parell de substituts, com😀). En desescapar s’accepta el text amb o sense les cometes dobles, i es toleren els salts de línia directes. - Cadena JavaScript (‘…’): escapa la barra invertida, la cometa simple, els salts de línia i els caràcters de control, a més d’U+2028 i U+2029, que trenquen els motors més antics. En desescapar s’entenen
\x41,A,\u{1F600}, els escapaments octals antics com\101i les continuacions de línia. - Plantilla literal JavaScript (`…`): escapa els accents oberts, les barres invertides i
${perquè no s’avaluï cap expressió; els salts de línia i els tabuladors es mantenen tal com són, ja que les plantilles literals els permeten. - Literal de cadena SQL (‘…’): dobla les cometes simples (
O'Brien→'O''Brien'), com a l’SQL estàndard. En desescapar es rebutja una cometa que no estigui doblada. Les barres invertides es deixen tal com són: MySQL, en el seu mode per defecte, també tracta\com a caràcter d’escapament, de manera que consulta les regles de la teva base de dades. - Camp CSV (RFC 4180): envolta el camp amb cometes dobles i dobla les cometes interiors quan conté una coma, un punt i coma, un tabulador, una cometa, un salt de línia o un espai al principi o al final. Afegeix cometes al voltant força les cometes.
- Valor d’atribut HTML: substitueix
&,<,>,"i'per entitats, cosa que és segura tant en atributs amb cometes simples com amb cometes dobles. En desescapar es descodifiquen les referències numèriques i&,<,>,",'i . - Expressió regular (text literal): escapa amb barra invertida
. * + ? ^ $ { } ( ) | [ ] \ /, a més dels salts de línia i els tabuladors, de manera que el patró reconegui el text literalment. El resultat és vàlid amb o sense l’indicadoru. - Component d’URL (codificació percentual): funciona com
encodeURIComponent, codificant com a bytes UTF-8 tot excepte lletres, xifres i- _ . ! ~ * ' ( ). Espais com a + (dades de formulari) utilitza la convencióapplication/x-www-form-urlencoded.
Escapar no és una barrera de seguretat per a SQL
Quan tries SQL, l’eina mostra un recordatori que val la pena repetir: la solució real contra la injecció SQL és una consulta parametritzada (sentència preparada), on el valor s’envia per separat del text SQL. Escapar a mà és fràgil: depèn de la base de dades, del joc de caràcters de la connexió i de configuracions com el tractament de la barra invertida de MySQL. Fes servir aquesta sortida per llegir registres, escriure dades de prova o depurar una consulta, mai per construir consultes a partir de dades de l’usuari.
Per a CSV, l’eina també avisa quan un valor comença amb =, +, - o @: un full de càlcul el pot executar com una fórmula (injecció CSV). Posar cometes no ho evita; la mitigació habitual és prefixar el valor amb un apòstrof o un espai.
Preguntes freqüents
Quina diferència hi ha entre una cadena JSON i una cadena JavaScript?
JSON només permet cometes dobles i un petit conjunt d’escapaments (\" \\ \/ \b \f \n \r \t \uXXXX). JavaScript també accepta cometes simples, accents oberts, \x41, \u{…}, \v i \0. Els escapaments JSON vàlids són vàlids en JavaScript, però no a l’inrevés.
Per què desescapar falla amb «seqüència d'escapament no vàlida»?
El text conté una barra invertida seguida d’alguna cosa que el format no permet, com \u12 amb menys de quatre xifres hexadecimals, o una barra invertida final sola. El missatge d’error mostra la seqüència errònia.
El CSV necessita cometes al voltant de cada camp?
No. La RFC 4180 només exigeix cometes quan el camp conté una coma, unes cometes dobles o un salt de línia. Aquesta eina també posa cometes als punts i coma, als tabuladors i als espais al principi o al final, perquè molts fulls de càlcul els fan servir com a delimitadors o els retallen.
L'escapament d'atributs HTML n'hi ha prou per evitar XSS?
És correcte per al text col·locat dins d’un valor d’atribut entre cometes. No n’hi ha prou per als atributs que són codi o URL, com onclick o href="javascript:…"; aquests necessiten validació, no només escapament.
S'envia el meu text a un servidor?
No. Totes les conversions s’executen en local al teu navegador, de manera que pots enganxar sense por valors de configuració o dades que no compartiries.
Eines relacionades
- Codificador i descodificador d'URL Codificador i descodificador d'URL gratuït. Codifica paràmetres o URL completes, descodifica seqüències %XX i tracta + com a espai, al navegador.
- Codificador i descodificador d'entitats HTML Escapa caràcters especials com a entitats HTML (amb nom, decimals o hex) o descodifica'n qualsevol, amb la llista completa de 2231 referències amb nom d'HTML5.
- Formatador i validador de JSON Formatador i validador de JSON gratuït que embelleix, minimitza i comprova JSON al navegador, amb els errors de sintaxi indicats per línia i columna.
- Provador d'expressions regulars Prova expressions regulars de JavaScript en directe amb coincidències ressaltades, grups de captura, substitució i una explicació clara de cada element.