Codificador e Decodificador de URL

Aplique percent-encoding em textos para URLs e query strings, decodifique URLs codificadas e divida qualquer URL em partes, com os parâmetros de query decodificados.

Roda no seu navegadorSem cadastroNada é enviado

Codificado

Como usar: URL Encode / Decode

  1. Escolha Codificar ou Decodificar.
  2. Ao codificar, escolha Componente para um único valor de query ou segmento de caminho, URL completa para manter a estrutura da URL, ou Dados de formulário para application/x-www-form-urlencoded.
  3. Cole seu texto. O resultado aparece na hora; escapes malformados são reportados com a posição.
  4. Cole uma URL completa no Analisador de URL para ver o host, o caminho, o fragmento e cada parâmetro de query decodificado.

O que é codificação de URL?

URLs só podem conter um conjunto limitado de caracteres ASCII (RFC 3986). Todo o resto, incluindo espaços, letras acentuadas e caracteres com significado especial como &, ? e #, é escrito como um sinal de porcentagem seguido de dois dígitos hex para cada byte UTF-8. Um espaço vira %20 e é vira %C3%A9.

encodeURIComponent vs. encodeURI

FunçãoNão alteraUse para
encodeURIComponentA-Z a-z 0-9 - _ . ~Um único valor de query, segmento de caminho ou nome de parâmetro
encodeURITambém : / ? # [ ] @ ! $ & ' ( ) * + , ; =Uma URL inteira cuja estrutura precisa ser mantida

Usar encodeURI em um valor de query é um bug clássico: um & dentro do valor não é escapado e divide o parâmetro em dois. O modo Componente desta ferramenta também escapa ! ' ( ) * para seguir estritamente a RFC 3986.

%20 ou + para espaços?

Em caminhos, um espaço precisa ser %20. Em envios de formulários HTML (application/x-www-form-urlencoded) e em muitas query strings, o espaço é escrito como +. Ao decodificar, ative Tratar + como espaço para dados de formulário, e desative quando um sinal de mais literal importar, como em jane+test@example.com.

Perguntas frequentes

Por que aparece “Escape malformado” ao decodificar?
Um % precisa ser seguido de exatamente dois dígitos hex. Um sinal de porcentagem literal, como em “50% off”, deveria ter sido codificado como %25. O erro mostra a posição da sequência inválida.
O que significa “Sequência de bytes UTF-8 inválida”?
Os bytes não foram codificados em UTF-8, muitas vezes porque o texto foi gerado por um sistema legado usando Latin-1 (por exemplo %E9 para é em vez de %C3%A9), ou a string foi cortada no meio de um caractere.
Devo codificar a URL inteira ou só os parâmetros?
Codifique cada nome e valor de parâmetro separadamente com a codificação de componente e depois junte-os com = e &. Codificar uma URL completa no modo componente também escaparia o :// e a quebraria.
Codificação dupla é um problema?
Sim. Codificar uma string já codificada transforma %20 em %2520. Se você vir %25 seguido de dígitos hex, o valor provavelmente foi codificado duas vezes. Decodifique duas vezes para recuperar o original.

Ferramentas relacionadas