Codifique e decodifique URLs, query strings e componentes. Analisa parâmetros e estrutura da URL automaticamente.
URL Encoding (também chamado de Percent-Encoding) é o processo de converter caracteres especiais ou não seguros em um formato que pode ser transmitido pela internet de forma segura e padronizada. Ele substitui caracteres problemáticos por um sinal de % seguido de dois dígitos hexadecimais que representam o código ASCII do caractere.
| Caractere Original | Codificado (Encoded) | Motivo da Codificação |
|---|---|---|
| Espaço ( ) | %20 (ou + em query string) | URLs não podem conter espaços literais. |
| E comercial (&) | %26 | O & é usado para separar parâmetros na query string. |
| Igual (=) | %3D | O = é usado para atribuir valor a um parâmetro. |
| Interrogação (?) | %3F | O ? marca o início da query string. |
| Barra (/) | %2F | A barra é um separador de caminho (path). Se fizer parte de um valor, deve ser codificada. |
| Cedilha (ç) / Acentos | %C3%A7 / %C3%A3 / %C3%A9 | Caracteres não-ASCII são codificados em UTF-8. |
No JavaScript, existem duas funções principais para codificação. Usar a função errada pode quebrar sua URL ou gerar vulnerabilidades.
| Função | Caracteres NÃO Codificados | Quando Usar |
|---|---|---|
encodeURI() | A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) # | Para codificar uma URL inteira que já está montada. Preserva a estrutura (://, /, ?, &, =). |
encodeURIComponent() | A-Z a-z 0-9 - _ . ! ~ * ' ( ) | Para codificar valores de parâmetros (query string) ou partes específicas da URL. É mais agressiva. |
https://site.com/?nome=João & SilvaencodeURI() não codifica o & (E comercial), gerando uma URL inválida onde "Silva" vira um novo parâmetro vazio.encodeURIComponent() no valor "João & Silva".https://site.com/?nome=Jo%C3%A3o%20%26%20Silva
const nome = "João & Silva";
const url = `https://api.exemplo.com/busca?q=${encodeURIComponent(nome)}`;
fetch(url);Segurança (XSS): Sempre use encodeURIComponent() ao inserir dados do usuário em uma URL ou atributo href. Isso previne ataques de Cross-Site Scripting (XSS) que poderiam injetar código malicioso via parâmetros não sanitizados.
A Query String é a parte da URL que começa após o caractere ?. Ela contém pares chave=valor separados por &.
Use o Analisador de URL acima para visualizar e decodificar automaticamente todos os parâmetros de uma URL complexa, incluindo UTM tags do Google Analytics.
?cidade=São Paulo → ?cidade=S%C3%A3o%20Pauloutm_campaign=Lançamento Verão 2026 → utm_campaign=Lan%C3%A7amento%20Ver%C3%A3o%202026urldecode(), Python: unquote()).%20, %3A? Cole no Decodificador para entender o que está sendo passado.?), o espaço pode ser codificado como + (ex: ?q=ol%C3%A1+mundo). Essa é uma convenção histórica do tipo de conteúdo application/x-www-form-urlencoded.%20.%20 para garantir compatibilidade total. Nossa ferramenta segue o padrão %20 (RFC 3986).
://, /, ?, &, =. Exemplo: https://site.com/arquivo nome.pdf → https://site.com/arquivo%20nome.pdf. Note que a barra não foi codificada.
0xC3 0xA7. Cada byte é convertido para hexadecimal e prefixado com %, resultando em %C3%A7. Isso garante que qualquer caractere do mundo (emojis, mandarim, árabe) possa ser transmitido.
=IMPORTDATA() com uma URL codificada, mas para decodificar texto puro, é mais fácil usar nosso conversor online.
%2F para não ser confundida com um separador de caminho. Exemplo: ?path=/home/user → ?path=%2Fhome%2Fuser. Use encodeURIComponent().
%20 de volta em espaço, %26 em &, etc. Use para:
A codificação de URL (também chamada de percent-encoding) substitui caracteres que não são permitidos em URLs por um sinal de porcentagem seguido de dois dígitos hexadecimais representando o valor ASCII do caractere. Isso garante que a URL seja válida e interpretada corretamente por navegadores, servidores e APIs. Apenas letras (A–Z, a–z), dígitos (0–9) e os caracteres -, _, ., ~ podem aparecer sem codificação em qualquer parte da URL.
| Caractere | Código URL | Descrição |
|---|---|---|
| espaço | %20 | Separador de palavras (também pode ser + em query strings) |
! | %21 | Ponto de exclamação |
# | %23 | Hash — separador de fragmento na URL |
$ | %24 | Cifrão |
& | %26 | Ampersand — separador de parâmetros em query string |
' | %27 | Apóstrofo / aspa simples |
( | %28 | Parêntese abre |
) | %29 | Parêntese fecha |
* | %2A | Asterisco |
+ | %2B | Sinal de soma (não codificado vira espaço em query strings) |
, | %2C | Vírgula |
/ | %2F | Barra — separador de segmentos de caminho |
: | %3A | Dois-pontos — separador de protocolo e porta |
; | %3B | Ponto-e-vírgula |
= | %3D | Igual — separador chave=valor em query string |
? | %3F | Interrogação — início da query string |
@ | %40 | Arroba — separador de usuário e host |
[ | %5B | Colchete abre |
] | %5D | Colchete fecha |
A codificação correta de URL não é apenas uma questão de compatibilidade técnica — ela é uma barreira fundamental de segurança. Quando parâmetros de entrada do usuário são inseridos diretamente em URLs sem codificação, a aplicação fica vulnerável a vários tipos de ataque.
Em ataques de SQL Injection via URL, um atacante pode inserir caracteres como ', -- e ; em parâmetros de query string. Se o backend não usar prepared statements e também não fizer encoding, esses caracteres chegam diretamente na query SQL. Por exemplo, uma URL como /buscar?nome=João'-- poderia encerrar uma query prematuramente, expondo dados não autorizados.
Riscos de segurança por falta de encoding:
• XSS (Cross-Site Scripting): Sem codificar < (%3C) e > (%3E), um atacante pode injetar tags HTML/JavaScript em parâmetros de URL que são refletidos na página, roubando cookies de sessão.
• Injetção de SQL via URL: Caracteres como ' (%27) não codificados em filtros de busca podem quebrar queries SQL.
• Open Redirect: URLs com / e @ não codificados em parâmetros de redirecionamento podem ser manipuladas para levar usuários a sites maliciosos.
• Boas práticas: Sempre use funções nativas da sua linguagem — encodeURIComponent() em JavaScript, urllib.parse.quote() em Python, URLEncoder.encode() em Java.