Decodificador de URL

5 de 2 avaliações

O Decodificador de URL é uma ferramenta gratuita que converte texto de URL codificado por percentagem na cadeia original.

O que faz a descodificação de URL?

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

Eis um pequeno exemplo do antes e depois:

Entrada codificada: red%20%26%20blue

Saída descodificada: red & blue

Esta codificação existe porque alguns caracteres têm significados estruturais num URL. Um ponto de interrogação delimita a consulta do URL, enquanto, nos dados de consulta com formato de formulário, um E comercial literal costuma separar campos. Ao codificar esses caracteres, uma aplicação pode transmiti-los como dados.

A codificação de URL não é encriptação e não garante confidencialidade. Qualquer pessoa que consiga ler o valor codificado pode descodificá-lo. Não trates palavras-passe, tokens de acesso ou informações pessoais codificados por percentagem como dados protegidos.

Como uso o Decodificador de URL?

Cola ou introduz o texto codificado, processa-o e consulta o valor restaurado no campo de resultado URL descodificado. A ferramenta utiliza a função urldecode do PHP, pelo que converte sequências %HH válidas e trata o sinal de adição como um espaço.

  1. Copia o componente codificado, como o valor de um parâmetro de consulta.
  2. Introduz o valor codificado para URL sem acrescentar aspas, a menos que façam realmente parte do valor.
  3. Processa a entrada de URL e verifica o resultado em URL descodificado.
  4. Se a saída ainda incluir sequências como %2F ou %20, confirma se a origem foi codificada mais do que uma vez antes de voltares a descodificá-la.

O processamento é feito no servidor. A entrada é enviada para o servidor através de HTTPS e não é armazenada, mas sai do teu dispositivo durante o processamento. Evita colar informações confidenciais neste Decodificador de URL, a menos que o processamento no servidor seja adequado para esses dados.

Onde é utilizada a codificação de URL?

A codificação de URL surge sobretudo em cadeias de consulta, envios de formulários e valores incorporados em ligações. Também aparece noutros locais menos óbvios, quando os dados têm de passar por um formato de texto restrito.

  • Cadeias de consulta: uma pesquisa por "tea & cake" pode aparecer como q=tea+%26+cake.
  • URIs de dados: os dados de texto podem ser codificados por percentagem depois do tipo de conteúdo multimédia, embora Base64 seja outra representação comum.
  • Ligações de email: uma ligação mailto pode codificar espaços, quebras de linha e pontuação nos parâmetros do assunto ou do corpo. As codificações de transferência MIME utilizadas dentro de uma mensagem de email são formatos distintos.
  • Cargas JSON: o próprio JSON tem regras de escape próprias, mas uma cadeia JSON pode conter um URL ou valor de consulta já codificado que tenha de ser descodificado separadamente.
  • Domínios internacionalizados: as etiquetas de domínio com caracteres não ASCII utilizam normalmente Punycode em vez de codificação por percentagem. Os componentes do caminho e da consulta podem, ainda assim, conter bytes UTF-8 codificados por percentagem.

Se o texto codificado for uma etiqueta de domínio que começa por xn--, utiliza o Conversor IDN Punycode. Um Decodificador de URL destina-se a componentes de URL codificados por percentagem, não à conversão de Punycode.

Exemplos práticos de descodificação de URL

Os exemplos seguintes mostram entradas comuns e o respetivo texto descodificado.

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

As letras, os números e a pontuação não codificada mantêm-se geralmente tal como foram introduzidos. Uma entrada vazia produz um resultado URL descodificado vazio. As entradas muito longas seguem as mesmas regras de descodificação, embora os navegadores, servidores e sistemas recetores possam impor os seus próprios limites ao comprimento dos pedidos ou URLs.

Os caracteres acentuados e não latinos são geralmente codificados como uma sequência de bytes UTF-8, sendo cada byte escrito separadamente. Se o sistema original tiver utilizado uma codificação de caracteres diferente, os bytes descodificados podem aparecer como símbolos de substituição ou texto aparentemente sem sentido.

Porque é que a descodificação de URL falha ou produz texto sem sentido?

A descodificação de URL pode produzir uma saída inalterada ou inesperada quando a entrada contém sequências de percentagem incompletas, foi codificada mais do que uma vez, é interpretada com o conjunto de caracteres errado ou nem sequer corresponde a dados codificados para URL. A função urldecode do PHP mantém inalteradas as sequências de percentagem malformadas, enquanto uma entrada com codificação dupla produz um resultado intermédio após uma passagem. Verifica a origem antes de descodificares repetidamente os dados.

  • Entrada com codificação dupla: %2520 é descodificado primeiro para %20 e só se transforma num espaço após uma segunda passagem de descodificação. Volta a descodificar apenas quando souberes que existe outra camada de codificação.
  • Sequência de percentagem incompleta: cada byte codificado precisa de dois dígitos hexadecimais. Um % no fim ou um valor como %2 está malformado e não pode representar um byte codificado completo, pelo que a função urldecode do PHP o mantém inalterado.
  • Codificação de caracteres errada: a descodificação por percentagem restaura bytes. Por exemplo, interpretar bytes ISO-8859-1 como UTF-8 pode produzir texto sem sentido, mesmo que as sequências de percentagem sejam válidas.
  • Dados binários em vez de texto: os bytes descodificados podem representar uma imagem, um ficheiro comprimido ou outro conteúdo binário. Não é esperado que esse tipo de saída seja apresentado como texto legível.
  • Família de codificação errada: se o resultado descodificado do URL for depois enviado para um Decodificador Base64, este poderá falhar devido ao uso de um alfabeto padrão em vez de um alfabeto seguro para URLs, à ausência de preenchimento = ou a uma entrada danificada. A codificação de URL por percentagem não tem preenchimento nem utiliza um alfabeto Base64. Além disso, a descodificação de URL não valida nem corrige esses problemas de Base64.

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

Perguntas frequentes

Devo descodificar o URL completo ou apenas uma parte?

Sempre que possível, descodifica apenas o segmento específico do caminho ou o valor do parâmetro de consulta. Descodificar um URL inteiro pode transformar caracteres reservados codificados, como %26, %3F ou %2F, em separadores e alterar a forma como o URL é interpretado.

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

Sim. Os dígitos hexadecimais nas sequências de percentagem não distinguem maiúsculas de minúsculas, pelo que %2f e %2F representam o mesmo byte. As sequências que combinam maiúsculas e minúsculas também são válidas.

A ferramenta descodifica várias vezes o mesmo valor?

Não. Cada chamada à função urldecode realiza uma única passagem de descodificação. Se %252F se transformar em %2F, é necessária outra passagem para produzir uma barra, mas a descodificação repetida pode alterar dados que deveriam conter uma sequência de percentagem literal.

A descodificação de URL consegue recuperar texto danificado?

Não. Pode reverter uma codificação por percentagem válida, mas não consegue reconstruir dígitos hexadecimais em falta nem determinar com certeza o conjunto de caracteres original. Consulta o sistema de origem, os cabeçalhos HTTP ou a documentação quando os bytes descodificados não forem apresentados corretamente.

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

Trata-o como uma etiqueta de domínio Punycode, não como texto normal codificado por percentagem. Utiliza o Conversor IDN Punycode e verifica cuidadosamente o domínio resultante, porque caracteres Unicode visualmente semelhantes podem pertencer a sistemas de escrita diferentes.

Ferramentas Similares

Codificador de URL

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

4,601
29

Ferramentas Populares