O que esta ferramenta faz
Uma URL só pode carregar um conjunto pequeno de caracteres simples. Todo o resto, como um espaço, um acento, um emoji ou um caractere com significado na sintaxe da URL, é escrito com um sinal de porcentagem e dois dígitos hexadecimais para cada byte: um espaço é %20 e "é" é %C3%A9. A ferramenta tem três abas. Codificar converte o texto para essa forma, Decodificar devolve e diz exatamente qual escape está quebrado, e Analisar URL separa um endereço em esquema, usuário, host, porta, caminho, consulta e fragmento, lista os parâmetros num pequeno editor e reconstrói a URL conforme você muda.
Três tipos de codificação
O mesmo texto pode ser codificado de três jeitos, e escolher errado é o erro mais comum.
- Componente (
encodeURIComponent) codifica tudo menos letras, dígitos e - _ . ! ~ * ' ( ). Use para um valor que vai dentro de uma URL, como um termo de busca. a/b?c=d&e vira a%2Fb%3Fc%3Dd%26e. - URL inteira (
encodeURI) também deixa ; , / ? : @ & = + $ #, então um endereço completo mantém a forma: o mesmo texto continua a/b?c=d&e. É errado para um valor isolado, porque um & ou = dentro seria lido como sintaxe. - Formulário é o que os formulários HTML e o
URLSearchParams escrevem: o espaço vira + e ~ ! ' ( ) também são codificados. "café au lait & crème" fica caf%C3%A9+au+lait+%26+cr%C3%A8me.
Os três trabalham com bytes UTF-8, então um emoji (um par substituto em JavaScript) ocupa quatro bytes: 😀 é %F0%9F%98%80. A metade solta de um par substituto não tem forma UTF-8, e a função do JavaScript lança "URI malformed"; esta ferramenta informa a posição.
Decodificando e o que pode dar errado
Decodificar reverte cada escape. Um sinal de mais só é um espaço no estilo de formulário, e %2B é sempre um mais. Há dois tipos de falha: um % sem dois dígitos hex depois (100%, %zz) e escapes que não formam UTF-8 válido, como %C3%28. A ferramenta nomeia cada problema com a posição e deixa o que não pôde decodificar como estava, para você ver onde está. Ative "Parar no primeiro erro" se preferir não ter saída quando algo falha. Se o resultado ainda tem escapes, como %2520 virando %20, provavelmente foi codificado duas vezes e um botão decodifica de novo.
Desmontando uma URL
O analisador separa primeiro o endereço exatamente como escrito, seguindo a RFC 3986, e depois compara cada parte com o que o analisador URL do navegador faz e mostra a diferença embaixo: a porta padrão 443 é descartada, o ./ do caminho é resolvido e um host como münchen.de é escrito xn--mnchen-3ya.de. Uma consulta vazia (?) não é o mesmo que nenhuma consulta.
Editando a string de consulta
Cada parâmetro é uma linha com nome e valor. A ordem e os nomes repetidos são mantidos; os parâmetros que você não toca voltam exatamente como estavam escritos, e os editados são codificados com %20 ou com + se a consulta já o usava. Reordene, remova ou adicione linhas e copie a URL reconstruída. Veja também a ferramenta Base64 e o formatador JSON quando um parâmetro tiver dados codificados. Tudo roda no seu navegador, nada é enviado e nenhum link é aberto por você.