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.
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.