Decodificador de URL

5 de 2 avaliações
Decodificador de URL

O Decodificador de URL é uma ferramenta gratuita que converte textos de URL codificados por porcentagem de volta à forma original.

Para que serve a decodificação de URL?

A decodificação de URL reverte o escape usado para transmitir espaços, sinais de pontuação e outros bytes em URLs e em outras sintaxes definidas que usam codificação por porcentagem. Nesse tipo de codificação, cada byte é representado por um sinal de porcentagem seguido de dois dígitos hexadecimais. A codificação de URL usada em formulários também representa espaços com +. Por exemplo, um espaço pode ser escrito como %20, e um "e" comercial como %26.

Veja um exemplo simples de antes e depois:

Entrada codificada: red%20%26%20blue

Saída decodificada: red & blue

Essa codificação é necessária porque alguns caracteres têm funções estruturais em uma URL. O ponto de interrogação delimita a consulta da URL, enquanto, nos dados de consulta no formato de formulário, um "e" comercial literal normalmente separa os campos. Ao codificar esses caracteres, um aplicativo pode transmiti-los como dados.

A codificação de URL não é criptografia e não oferece sigilo. Qualquer pessoa que consiga ler o valor codificado também pode decodificá-lo. Não considere senhas, tokens de acesso ou informações pessoais codificados por porcentagem como dados protegidos.

Diagrama: o texto passa pela ferramenta Decodificador de URL nos dois sentidos

Como usar o Decodificador de URL?

Cole ou digite o texto codificado, processe-o e confira o valor restaurado no campo de resultado URL decodificada. A ferramenta usa a função urldecode do PHP, portanto converte sequências %HH válidas e trata o sinal de adição como um espaço.

  1. Copie o componente codificado, como o valor de um parâmetro de consulta.
  2. Insira o valor codificado para URL sem acrescentar aspas, a menos que elas realmente façam parte do valor.
  3. Processe a entrada da URL e confira o resultado em URL decodificada.
  4. Se a saída ainda contiver sequências como %2F ou %20, verifique se a origem foi codificada mais de uma vez antes de decodificá-la novamente.
A ferramenta Decodificador de URL no digily.link, com o formulário de entrada

O processamento é feito no servidor. Sua entrada é enviada ao servidor por HTTPS e não é armazenada, mas sai do seu dispositivo durante o processamento. Evite colar informações secretas neste Decodificador de URL, a menos que o processamento no servidor seja adequado para esses dados.

Onde a codificação de URL é usada?

A codificação de URL aparece com mais frequência em strings de consulta, envios de formulários e valores incorporados a links. Ela também é usada em situações menos óbvias, nas quais os dados precisam passar por um formato de texto restrito.

  • Strings de consulta: uma busca por "tea & cake" pode aparecer como q=tea+%26+cake.
  • URIs de dados: os dados textuais podem ser codificados por porcentagem depois do tipo de mídia, embora Base64 também seja uma representação comum.
  • Links de e-mail: um link mailto pode codificar espaços, quebras de linha e sinais de pontuação nos parâmetros de assunto ou corpo. As codificações de transferência MIME usadas dentro de uma mensagem de e-mail são formatos distintos.
  • Payloads JSON: o próprio JSON tem regras de escape específicas, mas uma string JSON pode conter uma URL ou um valor de consulta já codificado que precise ser decodificado separadamente.
  • Domínios internacionalizados: rótulos de domínio com caracteres não ASCII normalmente usam Punycode, e não codificação por porcentagem. Os componentes de caminho e consulta ainda podem conter bytes UTF-8 codificados por porcentagem.

Se o texto codificado for um rótulo de domínio iniciado por xn--, use o Conversor de punycode IDN. O Decodificador de URL foi criado para componentes de URL codificados por porcentagem, não para converter Punycode.

Exemplo de resultado gerado pela ferramenta Decodificador de URL

Exemplos práticos de decodificação de URL

Os exemplos abaixo mostram entradas comuns e os textos correspondentes após a decodificação da URL.

  • hello%20world se torna hello world.
  • name=Tom+Jones se torna name=Tom Jones.
  • fish%26chips se torna fish&chips.
  • %C2%A3 se torna £ quando os bytes representam texto UTF-8.
  • %E6%9D%B1%E4%BA%AC se torna 東京 quando interpretado como UTF-8.
  • 100%25 se torna 100%.

Letras simples, números e sinais de pontuação não codificados geralmente permanecem como foram inseridos. Uma entrada vazia gera um resultado URL decodificada vazio. Entradas muito longas seguem as mesmas regras de decodificação, embora navegadores, servidores e sistemas de destino possam impor seus próprios limites de tamanho para solicitações ou URLs.

Caracteres acentuados e não latinos costumam ser codificados como uma sequência de bytes UTF-8, com cada byte representado separadamente. Se o sistema original tiver usado outra codificação de caracteres, os bytes decodificados poderão aparecer como símbolos de substituição ou como um texto aparentemente sem sentido.

Por que a decodificação de URL falha ou gera texto sem sentido?

A decodificação de URL pode gerar uma saída inalterada ou inesperada quando a entrada contém sequências de porcentagem incompletas, foi codificada mais de uma vez, é interpretada com o conjunto de caracteres errado ou nem sequer contém dados codificados para URL. A função urldecode do PHP mantém sequências de porcentagem malformadas inalteradas. Já uma entrada codificada duas vezes gera um resultado intermediário após a primeira passagem. Examine a origem antes de decodificar os dados repetidamente.

  • Entrada codificada duas vezes: %2520 é decodificado primeiro como %20 e só se transforma em espaço depois de uma segunda passagem. Decodifique novamente apenas quando souber que existe outra camada de codificação.
  • Sequência de porcentagem incompleta: cada byte codificado precisa de dois dígitos hexadecimais. Um % no final ou um valor como %2 é malformado e não pode representar um byte codificado completo. Por isso, a função urldecode do PHP o mantém inalterado.
  • Codificação de caracteres incorreta: a decodificação por porcentagem restaura bytes. Interpretar bytes ISO-8859-1 como UTF-8, por exemplo, pode gerar texto sem sentido mesmo que as sequências de porcentagem sejam válidas.
  • Dados binários em vez de texto: os bytes decodificados podem representar uma imagem, um arquivo compactado ou outro conteúdo binário. Não se espera que esse tipo de saída apareça como texto legível.
  • Família de codificação incorreta: se o resultado da decodificação de URL for enviado em seguida a um Decodificador Base64, esse decodificador poderá falhar por causa de um alfabeto padrão em vez de um alfabeto seguro para URL, da ausência do preenchimento = ou de uma entrada danificada. A codificação de URL por porcentagem não tem preenchimento nem usa um alfabeto Base64. Além disso, a decodificação de URL não valida nem corrige esses problemas de Base64.

Tenha cuidado com sinais de adição literais. Na codificação de URL usada em formulários, + representa um espaço. Um sinal de adição verdadeiro normalmente deve ser codificado como %2B antes da decodificação.

Perguntas frequentes

Devo decodificar a URL inteira ou apenas uma parte?

Sempre que possível, decodifique apenas o segmento de caminho ou o valor do parâmetro de consulta. Decodificar uma URL inteira pode transformar caracteres reservados codificados, como %26, %3F ou %2F, em separadores e mudar a forma como a URL é interpretada.

A decodificação de URL aceita códigos hexadecimais em letras minúsculas?

Sim. Os dígitos hexadecimais das sequências de porcentagem não diferenciam maiúsculas de minúsculas, portanto %2f e %2F representam o mesmo byte. Sequências com letras maiúsculas e minúsculas misturadas também são válidas.

A ferramenta decodifica o mesmo valor várias vezes?

Não. Uma chamada à função urldecode realiza apenas uma passagem de decodificação. Se %252F se transformar em %2F, será necessária outra passagem para produzir uma barra. No entanto, decodificar repetidamente pode alterar dados que deveriam conter uma sequência de porcentagem literal.

A decodificação de URL consegue recuperar um texto danificado?

Não. Ela pode reverter uma codificação por porcentagem válida, mas não consegue reconstruir dígitos hexadecimais ausentes nem determinar com certeza o conjunto de caracteres original. Consulte o sistema de origem, os cabeçalhos HTTP ou a documentação quando os bytes decodificados não forem exibidos corretamente.

O que fazer com um valor que começa por xn--?

Trate-o como um rótulo de domínio em Punycode, não como um texto comum codificado por porcentagem. Use o Conversor de punycode IDN e verifique com cuidado o domínio resultante, pois caracteres Unicode visualmente semelhantes podem pertencer a sistemas de escrita diferentes.

Ferramentas semelhantes

Codificador de URL

Codifique qualquer texto no formato de URL com nossa ferramenta de codificação de URL para criar endereços da web seguros.

4,601
29

Ferramentas populares