Pular para o conteúdo

Escapar strings

String Escaper

Escapa e desescapa strings para JSON, JavaScript, SQL, shell, CSV e expressões regulares.

Escapa um trecho de texto para que ele possa ser colado dentro de um literal de string — em JSON, JavaScript, Python, Java, C#, SQL, um comando de shell, um campo CSV ou uma expressão regular — e desescapa de volta. Cada destino tem suas próprias regras, e as diferenças entre elas são exatamente onde moram os bugs de injeção.

🔒 Roda inteiramente no seu navegadorescapestringjsonshell
Regras
Direção

RFC 8259: `\" \\ \/ \b \f \n \r \t` e `\uXXXX` para o resto. Sem `\'`, sem `\x`, sem `\0`.

Texto

Escapado

Entrada

0 caracteres

Saída

0 caracteres

Como usar

  1. Escolha a linguagem de destino

    A nota abaixo do seletor diz o que aquele destino realmente escapa. JSON é mais estrito que JavaScript; um template literal tem dois caracteres a mais para se preocupar; shell com aspas simples é um problema diferente de shell com aspas duplas.

  2. Cole o texto cru

    Quebras de linha, aspas e caracteres não ASCII são todos tratados. O que sai é o *interior* do literal: as aspas ao redor ainda são por sua conta.

  3. Confira “reverte sem perda”

    A estatística abaixo da saída desescapa o resultado e compara com o que você digitou. Se disser que não, o escape tem perda para este destino e a string que você colar não é a string que você tinha.

Perguntas frequentes

Escapar deixa meu SQL seguro?

Não. Escapar um literal não é o mesmo que uma consulta parametrizada, e esta ferramenta não tem como saber o modo de aspas do seu banco de dados, seu conjunto de caracteres, nem se o valor vai parar em algum lugar em que a aspa não é o delimitador. Use parâmetros vinculados; use isto para ler uma consulta, não para montar uma para produção.

Por que o modo SQL não usa barras invertidas?

Porque o SQL padrão não tem escape com barra invertida: uma aspa é escrita duas vezes. Escape com barra invertida é uma extensão do MySQL, e código que presume que ele existe é de onde saiu boa parte das injeções. Se você precisa do comportamento do MySQL, precisa dele de propósito.

O que faz o destino `\uXXXX`?

Transforma cada caractere não ASCII em um escape `\uXXXX`, pares substitutos incluídos. Sua direção mais útil é a inversa: um arquivo properties ou uma linha de log que um pipeline só ASCII estragou recupera seus acentos e cedilhas quando você desescapa.

Shell com aspas simples é mesmo seguro para qualquer string?

Para a string em si, sim: nada dentro de aspas simples POSIX tem significado, e uma aspa é escrita como `'\''`. Contra o que ele não protege é o programa que você chama interpretando o argumento, ou um shell que não seja POSIX. É uma regra de aspas, não um sandbox.

Pode receber de

Em seguida

Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.