Neste artigo
O Que É a Codificação de URL?
A codificação de URL (também chamada de codificação por percentagem) converte caracteres que são inseguros ou reservados em URLs para um formato seguro. Cada caractere inseguro é substituído pelo símbolo % seguido do seu código ASCII hexadecimal de dois dígitos. Por exemplo, um espaço torna-se %20 e um ampersand torna-se %26.
As URLs só podem conter um conjunto limitado de caracteres ASCII. Caracteres fora desse conjunto — incluindo espaços, letras não ASCII e símbolos especiais — devem ser codificados por percentagem para serem transmitidos com segurança numa URL.
Como Funciona a Codificação de URL
O codificador identifica caracteres que não são seguros em URLs e substitui-os pelos seus equivalentes codificados por percentagem.
- Deteção de caracteres seguros — letras, dígitos e - _ . ~ permanecem inalterados
- Tratamento de caracteres reservados — ! * ' ( ) ; : @ & = + $ , / ? # [ ] são codificados na maioria dos contextos
- Suporte a Unicode — caracteres não ASCII são primeiro codificados em UTF-8 e, em seguida, cada byte é codificado por percentagem
Experimente gratuitamente — sem cadastro
Codificar ou Descodificar uma URL →Quando Usar a Codificação de URL
A codificação de URL é necessária sempre que caracteres especiais aparecem em componentes de URL.
- Parâmetros de consulta — codifique valores passados como parâmetros de query string, especialmente termos de pesquisa fornecidos pelo utilizador
- Pedidos de API — codifique segmentos de caminho e parâmetros ao construir URLs de API de forma programática
- Dados de formulário — codifique dados de formulário antes de anexar a URLs em pedidos GET
Perguntas Frequentes
Qual é a diferença entre encodeURI e encodeURIComponent em JavaScript?
encodeURI codifica uma URL completa e deixa caracteres como /, :, # intactos porque têm significado estrutural nas URLs. encodeURIComponent codifica um único componente de URL (como o valor de um parâmetro de consulta) e também codifica por percentagem esses caracteres estruturais. Para codificar valores de parâmetros individuais, utilize sempre encodeURIComponent.
Por que um espaço aparece às vezes como + em vez de %20?
O formato application/x-www-form-urlencoded (usado no envio de formulários HTML) codifica espaços como + em vez de %20. Esta é uma convenção legada dos primeiros padrões da web. Em query strings de formulários HTML, + significa espaço; noutros contextos de URL, usa-se %20. Ambos são válidos, mas o contexto determina qual utilizar.
Preciso de codificar a URL inteira ou apenas partes dela?
Codifique apenas os componentes individuais (segmentos de caminho, valores de parâmetros de consulta). Codificar a URL inteira também codificaria os caracteres :, / e ? que definem a estrutura da URL, quebrando-a. A regra é: codifique os valores, não os caracteres estruturais que formam a URL.