·4 min de leitura

Escape e Desescape de String para Mac — JSON, HTML, URL

Incorporar um formato de string dentro de outro significa escapar aspas, barras e caracteres especiais corretamente, ou assistir seu analisador engasgar.

Você precisa incorporar uma string JSON dentro de outra string JSON — talvez uma mensagem de log que ela mesma contenha um payload JSON. Ou está escrevendo um comando shell que inclui uma string com aspas. Ou está construindo uma URL que precisa carregar outra URL como parâmetro de consulta. Cada uma dessas situações exige escape: converter caracteres que de outra forma seriam interpretados como sintaxe em uma forma tratada como dado literal.

Contextos diferentes escapam de formas diferentes. O JSON escapa aspas com uma barra invertida e representa caracteres especiais como quebras de linha como \n. O escape de shell depende de qual estilo de aspas você está usando. O escape de URL codifica caracteres reservados em percentual de forma totalmente diferente dos outros dois. Confundir isso — aplicar escape de JSON onde era necessário escape de URL — produz uma saída que parece quase certa e falha de formas confusas.

O Problema do Escape Duplo

Um dos bugs mais comuns nessa área é o escape duplo: uma string é escapada uma vez pelo seu código e novamente por uma biblioteca ou framework que assume que ela ainda está bruta, transformando uma única barra invertida em duas e corrompendo silenciosamente os dados. Diagnosticar isso exige desescapar passo a passo para ver exatamente onde a camada extra foi introduzida — tedioso de fazer manualmente, especialmente em uma string longa.

Escape e Desescape para Múltiplos Formatos

Bellows inclui ferramentas de escape de string cobrindo os formatos JSON, HTML e URL entre suas 41 ferramentas para desenvolvedores. Cole uma string bruta para vê-la corretamente escapada para um determinado contexto, ou cole uma string escapada para ver o valor bruto original.

Bellows string escape and unescape tool on macOS

Incorporando Strings Dentro de Strings

Construir um payload JSON que ele mesmo contém uma string JSON como valor de campo, ou montar uma mensagem de log que precisa incluir com segurança entrada arbitrária de usuário, ambos exigem escape correto para evitar corromper a estrutura externa.

Diagnosticando Dados com Escape Duplo

Quando uma string parece ter sido escapada mais vezes do que deveria, desescapá-la camada por camada revela exatamente onde a codificação extra foi introduzida, que geralmente é a forma mais rápida de rastrear o código responsável.

Obtenha o Bellows na Mac App Store

Próximo artigo

Bellows

41 developer tools in one native Mac app — JSON, JWT, Base64, hashes, and more.

Get Bellows on the Mac App Store