Codificação de URL (percent-encoding): o que é e quando usar
URLs só podem conter um conjunto limitado de caracteres. Espaços, acentos, cedilha, emojis e símbolos como &, ? e # dentro de um valor precisam ser codificados no formato %XX, em que XX é o valor hexadecimal de cada byte em UTF-8. Esse processo se chama percent-encoding ou URL encoding. Por exemplo, "pão de queijo" vira p%C3%A3o%20de%20queijo.
Esta ferramenta codifica e decodifica textos e URLs e também analisa uma URL, separando protocolo, domínio, caminho, âncora e cada parâmetro da query, que você pode editar, remover ou adicionar.
Componente ou URL inteira?
| Função | O que preserva | Quando usar |
|---|---|---|
encodeURIComponent | apenas letras, números e - _ . ! ~ * ' ( ) | Valores de parâmetros, como o texto de busca em ?q= ou a mensagem de um link do WhatsApp |
encodeURI | também : / ? # [ ] @ & = + $ , | Uma URL completa que tenha espaços ou acentos no caminho |
O erro mais comum é codificar a URL inteira com encodeURIComponent (as barras viram %2F e o link quebra) ou codificar um valor com encodeURI (um & dentro do valor não é codificado e "parte" o parâmetro em dois).
Espaço: %20 ou +?
Na especificação de URLs, o espaço é %20. Já em formulários HTML enviados no formato application/x-www-form-urlencoded, o espaço é representado por +. Marque a opção correspondente quando estiver montando ou lendo dados de formulário. Ao decodificar com essa opção, os + viram espaços.
Analisador de URL
Na aba Analisar URL, cole qualquer endereço para ver:
- Protocolo (http, https), domínio e subdomínio, porta, caminho e âncora.
- Uma tabela com todos os parâmetros já decodificados, que você pode editar.
- Um botão para remover parâmetros de rastreamento (utm_source, utm_medium, fbclid, gclid etc.) e obter um link limpo para compartilhar.
Para criar links com parâmetros UTM corretamente, use o gerador de links UTM. Para codificar dados binários em texto, veja o codificador Base64.
Codificação de URL em linguagens de programação
JavaScript: encodeURIComponent("pão de queijo")
Python: urllib.parse.quote("pão de queijo")
PHP: rawurlencode("pão de queijo") // urlencode() usa +
Java: URLEncoder.encode("pão de queijo", StandardCharsets.UTF_8) // usa +