Ferramentas
Codificador e decodificador de URL
Aplique o percent-encoding a um texto para colocá-lo dentro de um endereço, ou desfaça a codificação para ler o que está escrito ali. Você escolhe entre codificar um valor isolado ou um endereço inteiro.
Tudo acontece no seu navegador. Nenhum dado digitado aqui é enviado à sysINFO ou a terceiros - não há servidor, upload nem registro. Você pode desconectar da internet e a ferramenta continua funcionando.
Para que serve
Um endereço da web aceita um conjunto pequeno de caracteres. Espaço, acento, cedilha, aspas, chaves e colchetes não podem aparecer crus; e sinais como a interrogação, a cerquilha, o e comercial e o sinal de igual até podem, mas com significado estrutural fixo. O percent-encoding, definido na RFC 3986, resolve o impasse trocando cada byte problemático pelo sinal de porcentagem seguido do valor hexadecimal daquele byte. É por isso que a palavra "operação" vira opera%C3%A7%C3%A3o na barra de endereços.
Na prática, isso importa toda vez que um endereço é montado a partir de dados variáveis: o termo digitado em uma busca, o nome de um arquivo, o valor de um filtro, um caminho de retorno passado como parâmetro. Sem codificar, um e comercial no meio do texto encerra o parâmetro e transforma o resto em outro campo; uma cerquilha corta tudo que vem depois, porque o navegador passa a tratar aquilo como âncora; e um espaço pode ser recusado pelo servidor ou convertido de formas diferentes por cada biblioteca no caminho.
A ferramenta faz os dois sentidos. Ao codificar, você decide se o texto é um valor solto que vai entrar dentro de uma URL ou um endereço já completo que só precisa ser saneado. Ao decodificar, ela devolve o texto legível, útil quando você recebeu um endereço longo em um chamado de suporte, em um registro de servidor ou em um link de rastreamento e quer entender que parâmetros ele carrega.
Como usar
- Escreva ou cole o conteúdo no campo Entrada.
- Deixe Codificar como componente marcado quando o texto for um valor que vai ocupar um pedaço da URL. Nesse modo a página usa
encodeURIComponent, que escapa também dois-pontos, barra, interrogação, cerquilha, e comercial e sinal de igual. - Desmarque a opção quando a entrada já for um endereço inteiro. Aí a página usa
encodeURI, que preserva:/?#&=justamente por serem estruturais na URL, e limita-se a codificar espaços, acentos e outros caracteres proibidos. - Clique em Codificar ou em Decodificar. A decodificação é sempre completa, no estilo de
decodeURIComponent, e não depende da caixa de seleção. - Use Copiar resultado para levar a saída para a área de transferência e Limpar para esvaziar os dois campos.
Exemplos
O mesmo endereço nos dois modos
Entrada: https://sysinfo.com.br/busca/?q=cloud e dados#topo Com a opção marcada (encodeURIComponent): https%3A%2F%2Fsysinfo.com.br%2Fbusca%2F%3Fq%3Dcloud%20e%20dados%23topo Com a opção desmarcada (encodeURI): https://sysinfo.com.br/busca/?q=cloud%20e%20dados#topo
Decodificando um parâmetro com acentos
Entrada: relat%C3%B3rio+de+opera%C3%A7%C3%B5es Resultado: relatório de operações
O sinal de mais na decodificação
Entrada: C%2B%2B e C%23 Resultado: C++ e C# Entrada: 1+1 Resultado: 1 1
Notas técnicas
A codificação chama diretamente encodeURIComponent ou encodeURI do próprio navegador. O primeiro deixa intactos apenas letras, dígitos e os sinais - _ . ! ~ * ' e os parênteses; o segundo mantém, além desses, o conjunto reservado ; , / ? : @ & = + $ #. Vale notar um detalhe que pega muita gente: encodeURIComponent não escapa !, ', (, ) e *, embora a RFC 3986 os classifique como subdelimitadores. Alguns servidores e assinaturas de requisição esperam esses cinco caracteres escapados; nesses casos é preciso um tratamento adicional no seu código.
A decodificação faz uma troca antes de chamar decodeURIComponent: todo sinal de mais vira espaço. Essa é a convenção do formato application/x-www-form-urlencoded, usado por formulários HTML e por boa parte das strings de consulta. O preço é que um sinal de mais literal que não tenha sido codificado como %2B se perde na conversão. Se você está inspecionando um trecho de caminho, e não uma consulta, leve isso em conta.
Quando a entrada tem um por cento solto, um par incompleto ou uma sequência de bytes que não forma UTF-8 válido, o navegador lança URIError e a página avisa em vez de devolver texto corrompido. Isso é comum quando o valor foi cortado no meio no copiar e colar, ou quando a origem usou uma codificação de caracteres diferente de UTF-8, caso em que a recuperação correta depende de saber qual era essa codificação.
Perguntas frequentes
Qual é a diferença entre encodeURI e encodeURIComponent?
encodeURIComponent codifica tudo que não seja letra, dígito ou um dos sinais - _ . ! ~ * apóstrofo e parênteses. Ele trata o texto como um pedaço de dado, então dois-pontos, barra, interrogação, cerquilha, e comercial e sinal de igual viram %3A, %2F, %3F, %23, %26 e %3D. Já encodeURI preserva esses sinais, porque parte do princípio de que você está codificando um endereço inteiro e que eles têm papel estrutural ali.
Quando devo usar cada um dos dois modos?
Use o modo componente, que é o padrão da página, sempre que estiver preparando um valor para entrar dentro de uma URL: o termo de uma busca, o nome de um arquivo, um endereço de redirecionamento passado como parâmetro. Desmarque a opção quando quiser apenas sanear um endereço completo que já está montado, trocando espaços e acentos sem quebrar a estrutura dele.
Por que o sinal de mais virou espaço na decodificação?
Porque a decodificação desta página segue a convenção de formulários HTML, na qual o espaço é transmitido como sinal de mais. Antes de aplicar decodeURIComponent, cada mais é trocado por um espaço. O efeito colateral é que um mais literal que não esteja codificado como %2B se perde. Se você precisa preservar o mais, verifique se a origem o codificou corretamente.
Por que apareceu a mensagem de sequência percent-encoding inválida?
A função de decodificação do navegador exige que todo sinal de porcentagem seja seguido de dois dígitos hexadecimais válidos e que a sequência de bytes resultante forme UTF-8 correto. Um por cento solto, um par incompleto no fim do texto ou um recorte que cortou uma letra acentuada ao meio produzem esse erro. Confira se o valor foi copiado por inteiro.
Codificar a URL protege os dados que estão nela?
Não. O percent-encoding é apenas uma forma de representar caracteres, e qualquer pessoa reverte a operação sem senha nenhuma, inclusive nesta página. Ele não esconde nem embaralha informação. Além disso, endereços costumam ser gravados em históricos de navegador, registros de servidor e cabeçalhos de referência, então dados sensíveis não devem viajar na URL de jeito nenhum.
Todas as ferramentas
Página de ferramentas →Todas gratuitas e executadas inteiramente no seu navegador.
Documentos brasileiros
Desenvolvimento
Texto