O que é codificação URL? Uma explicação completa da codificação percent
Resposta rápida
A codificação URL (codificação percentual) substitui caracteres inseguros em URL por% seguido por dois dígitos hexadecimais. Por exemplo, o espaço passa a ser% 20 e passa a ser% 26. Garante que URLs possa ser transmitido sem ambiguidade. Use nosso codificador e decodificador URL gratuito para converter em seu navegador.
Introdução
A codificação URL, também chamada de codificação percentual, é um mecanismo para codificar caracteres especiais em um URL para que possam ser transmitidos com segurança pela Internet. URLs pode conter apenas um conjunto limitado de caracteres ASCII – letras, dígitos e alguns caracteres reservados. Qualquer outro caractere (espaços, aspas, letras não ASCII) deve ser codificado como um sinal de porcentagem (%) seguido por dois dígitos hexadecimais representando o valor do byte do caractere. A codificação URL é definida pela RFC 3986.
Passo a passo
-
Entenda quais caracteres precisam de codificação
Caracteres não reservados (AZ, az, 0-9, -, _, ., ~) não precisam de codificação. Caracteres reservados (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) têm significado especial em URLs e devem ser codificados quando usados como dados. Todos os outros caracteres (espaços, aspas, não ASCII) devem ser codificados.
-
Aprenda o mecanismo de codificação
Cada caractere que precisa de codificação é convertido em sua sequência de bytes UTF-8 e, em seguida, cada byte é representado como% XX, onde XX é o valor hexadecimal. Espaço (0x20) →% 20. O caractere não ASCII 'é' (UTF-8: 0xC3 0xA9) → %C3%A9.
-
Distinguir encodeURI de encodeURIComponent
encodeURI() codifica um URL completo, mas preserva os caracteres reservados (:/?&=) que fazem parte da estrutura URL. encodeURIComponent() codifica tudo, exceto caracteres não reservados — use-o para valores de parâmetros de consulta onde os caracteres reservados são dados, não estrutura.
-
Decodificar URLs codificado por porcentagem
A decodificação inverte a codificação: %20 → espaço, %C3%A9 → é. Use decodeURI() para URLs completo e decodeURIComponent() para valores de parâmetros de consulta. Sequências de escape inválidas (como %ZZ) geram erros.
Exemplos
Codificar um espaço
Entrada: hello world
Saída: hello%20world
Codificar texto não ASCII
Entrada: café
Saída: caf%C3%A9
Codifique um valor de parâmetro de consulta
Entrada: name=John Doe & Co.
Saída: name%3DJohn%20Doe%20%26%20Co.
Problemas comuns
- Codificando todo o URL quando apenas os valores precisam de codificação —codifique os valores dos parâmetros de consulta, não a estrutura URL (://?&=).
- Codificação dupla — se um URL já estiver codificado, a codificação produzirá novamente %2520 em vez de %20. Decodifique primeiro se não tiver certeza se já está codificado.
- Usando encodeURI vs encodeURIComponent incorretamente —encodeURI preserva caracteres de estrutura URL; encodeURIComponent os codifica. Use o último para valores de parâmetros de consulta.
- Sequências de escape inválidas —%ZZ ou um único% no final são inválidas e gerarão erros quando decodificadas.
Dicas
- Sempre codifique valores de parâmetros de consulta que possam conter espaços, caracteres especiais ou entrada do usuário para evitar injeção de URL.
- Use encodeURIComponent() para valores de parâmetros de consulta e encodeURI() para URLs completo que só precisa de caracteres inseguros codificados.
- A codificação URL não é criptografia – qualquer pessoa pode decodificá-la. Nunca use-o para ocultar dados confidenciais.
- Use nosso codificador e decodificador URL para conversão instantânea e privada em seu navegador.