Como funciona
A codificação de URL (percent-encoding) substitui os caracteres que não podem aparecer literalmente em um endereço por sequências %XX com seu valor de byte. Por exemplo, o espaço se converte em %20.
O alcance "Componente" escapa também os caracteres reservados (= & / ? #): use-o para o valor de um parâmetro. "URL completa" preserva a estrutura do endereço: use-a para uma URL inteira.
Nos formulários HTML o espaço é codificado como + (application/x-www-form-urlencoded); nos demais casos usa-se %20 conforme o padrão RFC 3986.
Exemplos
hola mundo & máshola%20mundo%20%26%20m%C3%A1sO "&" é escapado (%26) para não se confundir com um separador de parâmetros; "á" é codificado em UTF-8 (%C3%A1).a=1&b=2a%3D1%26b%3D2https://sitio.com/á b?x=1 2URL completa: https://sitio.com/%C3%A1%20b?x=1%202No modo "URL completa" são preservados ://, / e ?; só é escapado o que quebraria o endereço.Casos de uso
- Montar parâmetros de query de forma segura ao construir uma URL manualmente.
- Codificar valores que contêm &, =, espaços ou acentos antes de enviá-los em uma requisição GET.
- Decodificar uma URL para ler quais valores cada parâmetro carrega.
- Preparar corpos application/x-www-form-urlencoded para o envio de formulários.
Perguntas frequentes
Qual é a diferença entre "Componente" e "URL completa"?
"Componente" (encodeURIComponent) escapa também =, &, /, ?, # — serve para um valor individual. "URL completa" (encodeURI) preserva esses caracteres estruturais — serve para uma URL inteira.
Quando se usa + e quando %20 para o espaço?
O + corresponde apenas ao corpo de formulários (application/x-www-form-urlencoded). No resto da URL, o padrão para o espaço é %20.
Por que "á" se converte em %C3%A1 e não em um único %XX?
Porque é codificado em UTF-8: os caracteres não ASCII ocupam vários bytes, e cada byte é representado com sua própria sequência %XX.
Codificar uma URL a torna segura?
Não. Só a torna válida no nível da sintaxe. Não é criptografia nem protege o conteúdo de forma alguma.