📑 Índice do Conteúdo
O que é URL Encode e a Especificação RFC 3986
O Percent-Encoding (ou URL Encoding) é o mecanismo padronizado pela especificação RFC 3986 para codificar caracteres reservados e caracteres não-ASCII em URLs uniformes. Cada caractere especial é substituído por um caractere de porcentagem (%) seguido por dois dígitos hexadecimais correspondentes ao seu byte em codificação UTF-8.
Por exemplo, o espaço em branco torna-se %20, a barra invertida torna-se %2F, o ponto de interrogação torna-se %3F e o caractere comercial torna-se %26.
Diferença Crucial: encodeURIComponent vs encodeURI
| Método | Caracteres Preservados | Cenário de Uso Ideal |
|---|---|---|
| encodeURIComponent() | A-Z a-z 0-9 - _ . ! ~ * ' ( ) |
Valores individuais de parâmetros em Query Strings (ex: ?q=texto+com+espaço&url=http://...). Codifica /, ? e &. |
| encodeURI() | ;,/?:@&=+$# (além dos alfanuméricos) |
URLs completas onde a estrutura de protocolo, domínio e parâmetros precisa ser mantida intacta. |
Perguntas Frequentes (FAQ)
Quando devo utilizar o símbolo “+” no lugar de “%20” para espaços?
O símbolo + é utilizado primariamente em formulários HTML com o MIME type application/x-www-form-urlencoded. Já o padrão moderno para URLs genéricas e APIs RESTful é o %20 conforme recomendado na RFC 3986.
Por que caracteres acentuados geram múltiplos códigos “%”?
Porque na codificação UTF-8, caracteres que não pertencem ao alfabeto ASCII básico (como ç, ã, é) são representados por sequências de 2 a 4 bytes. Cada byte gera seu próprio percent-encoded (por exemplo, ã vira %C3%A3).

