Como escapar e desescapar strings HTML/URL/JS
Pare de quebrar páginas e APIs com aspas, & e Unicode soltos. Converta texto para e de formas seguras para HTML, URL, JavaScript, JSON, CSV e XML.

Mais utilitários que combinam com este guia:
Por que isso importa
Colar avaliação de cliente num JSON que alimenta banner web. A frase tem " solta. Build passa, banner vai ao ar, homepage mostra Uncaught SyntaxError. Correção é escapar a aspas — mas qual escape (entidade HTML? \" em JSON? %22 em URL?) é a habilidade real. Esta ferramenta reúne todos num lugar só para parar de adivinhar regex do Stack Overflow.
Três cenários reais
Converta <script> em <script> para navegador mostrar texto literal em vez de executar.
Sem XSS nem quebra de render
URL-encode name=O'Hara para name=O%27Hara antes de anexar à URL.
Chamada API funciona
Campos entre aspas e aspas internas dobradas — perfil CSV faz automaticamente.
Import limpo
Passo a passo
Abra escape de texto.
Cole entrada bruta
Original fica à esquerda; resultado escapado à direita.
Escolha formato destino
HTML, URL, JavaScript/JSON, CSV ou XML — regras diferentes. Escolha o que casa com o destino da string, não a fonte.
Alterne Escape vs Unescape
Unescape quando já tem string escapada e quer original — ex.: depurar linha de log codificada em JSON.
Copie string segura
Cole em código, config ou chamada API.
Bruto
<a href="x">Hi & welcome</a>Escapado HTML
<a href="x">Hi & welcome</a>Bruto
She said "hi" on Tuesday — line break
follows.Escapado JS
She said \"hi\"\ton Tuesday \u2014 line break\nfollows.
Dicas avançadas
- Escape só quando necessário. Se destino é
textContentde nó DOM, navegador já escapa. Duplo escape é bug frequente. - Em query string, encode cada valor separadamente. Encode da URL inteira escapa
=e&legítimos. - JSON ≠ JavaScript. String JS pode usar aspas simples; JSON não. Escolha perfil conforme formato destino.
- Teste ida e volta: escape, depois unescape, confirme original. Se não bater, entrada tinha caracteres de controle que precisam limpeza antes.
Armadilhas comuns
Erro comum
Duplo escape: "&" em vez de "&"
Você escapou texto já escapado. Rode Unescape primeiro para garantir entrada crua, depois escape uma vez para o destino.
Erro comum
Unicode vira `\u00XX` literal no arquivo
Algumas stacks antigas não entendem escapes \uXXXX. Use perfil URL (percent-encoding UTF-8) ou guarde UTF-8 cru e escape só na saída.
Erro comum
CSV escapa tab dentro de campo entre aspas
Regra CSV só dobra aspas internas; tab e newline passam. Se importador conta colunas por tab/newline, mude separador (ex.: ;) ou aspas em todos campos.
Quando esta não é a ferramenta certa
- Sanitizar HTML com tags permitidas (comentários de blog) precisa sanitizador completo tipo DOMPurify, não escape cego.
- SQL deve usar queries parametrizadas do driver, não escape manual de string.
- Argumentos de shell dependem do shell (
bashvscmd.exe). Useshlexou equivalente da linguagem.
FAQ
Diferença entre encodeURI e encodeURIComponent?
encodeURI preserva caracteres reservados de URL (:, /, ?). encodeURIComponent (padrão do perfil URL aqui) codifica tudo — correto para valor único, não URL inteira.
Preserva emoji?
Sim. Cada perfil codifica sequência UTF-8 multi-byte adequadamente (%F0%9F%98%80 em URL, pares surrogate \uD83D\uDE00 em JS).
Meu texto vai para servidor?
Não. Escape local; resultado não sai do navegador.
Próximos passos
- Depois de escapar, valide saída comparando com original.
- Formate JSON embutido com formatador.
- Para dados binários (não texto) use codec Base64/Hex.