URL Encoding Codificar & Decodificar
Ferramenta gratuita de URL Encoding Codificar & Decodificar online. Processamento 100% local — seus dados nunca saem do seu dispositivo.
O resultado será exibido aqui...
Entrada → Codificar
Usage Guide
Sobre a codificação URL
A codificação URL (também conhecida como Codificação por Percentual, definida na RFC 3986) é um método de codificação que converte caracteres especiais em URLs para caracteres seguros. As URLs permitem apenas um subconjunto de caracteres ASCII (letras, números e alguns caracteres especiais); outros caracteres (como espaços, caracteres especiais) devem ser codificados antes de serem usados em URLs. A codificação URL converte cada byte para o formato %XX, onde XX é a representação hexadecimal desse byte. A codificação URL é fundamental para o desenvolvimento web e é amplamente utilizada em parâmetros URL, envios de formulários, requisições HTTP e outros cenários.
Etapas de uso
A codificação e decodificação URL é muito simples:
Regras de codificação
A codificação URL segue estas regras:
encodeURIComponent() do JavaScript trata corretamente a maioria dos casos.Exemplos de codificação comuns
Aqui estão as codificações URL para alguns caracteres comuns:
Cenários de aplicação
A codificação URL é amplamente utilizada em vários cenários de desenvolvimento web:
FAQ
Q: Qual é a diferença entre codificação URL e Base64?
A: A codificação URL e o Base64 são ambos usados para lidar com caracteres especiais, mas para propósitos diferentes. Codificação URL: 1) Propósito: Permitir que caracteres especiais sejam transmitidos com segurança em URLs. 2) Formato: %XX (ex.: %20). 3) Cenários: Parâmetros URL, envios de formulários. Base64: 1) Propósito: Converter dados binários para formato de texto. 2) Formato: A-Z, a-z, 0-9, +, /. 3) Cenários: Incorporação de imagens, JWT, anexos de e-mail. Conselho de seleção: 1) Parâmetros URL: use codificação URL. 2) Dados binários: use Base64. 3) Ambos podem ser combinados (ex.: codificar em Base64 e depois codificar em URL).
Q: Os espaços devem ser codificados como %20 ou +?
A: A codificação de espaços depende da localização na URL. %20: 1) Usado na parte do caminho da URL (ex.: /caminho/ola%20mundo). 2) Usado em fragmentos (após #). 3) encodeURIComponent() codifica espaços como %20. +: 1) Usado em strings de consulta (após ?, ex.: ?q=ola+mundo). 2) O formato application/x-www-form-urlencoded usa +. Recomendação: Use encodeURIComponent() para codificar uniformemente como %20; os servidores irão tratar automaticamente + e %20.
Q: Como usar a codificação URL em JavaScript?
A: JavaScript fornece três funções de codificação URL com propósitos diferentes. encodeURIComponent(): Codifica componentes URI (valores de parâmetros), recomendado. Codifica todos os caracteres especiais (exceto A-Z, a-z, 0-9, -, _, ., ~). encodeURI(): Codifica URIs completos, preserva caracteres de estrutura URI (como :, /, ?, &). Adequado para codificar URLs completas. escape(): Obsoleto, não recomendado. Exemplo:// Codificar valor de parâmetro (recomendado)
encodeURIComponent('Olá Mundo'); // 'Ol%C3%A1%20Mundo'
// Codificar URL completa
encodeURI('https://example.com/ola mundo'); // 'https://example.com/ola%20mundo'
Decodificação: Use decodeURIComponent() ou decodeURI().
Q: Como os caracteres não ASCII são codificados em URL?
A: Caracteres não ASCII devem ser primeiro convertidos para bytes UTF-8, depois codificados no formato %XX. Exemplo: “Olá” → bytes UTF-8: 4F 6C C3 A1 → codificação URL: Ol%C3%A1. JavaScript: encodeURIComponent('Olá') lida com a conversão UTF-8 automaticamente. Nota: 1) Diferentes codificações produzem resultados diferentes. 2) O servidor deve decodificar UTF-8 corretamente. 3) Aplicações web modernas usam uniformemente codificação UTF-8.
Q: A codificação URL aumenta o tamanho dos dados?
A: Sim, a codificação URL aumenta o tamanho dos dados, com o aumento dependendo do tipo de caractere. Caracteres ASCII: 1) Letras, números: não codificados, tamanho inalterado. 2) Caracteres especiais (como &, =): codificados como 3 bytes (%XX), aumento de 200%. Caracteres não ASCII: 1) Codificação UTF-8: 1-4 bytes por caractere, cada byte como %XX (3 bytes). Otimização: 1) Usar requisições POST para transmitir grandes quantidades de dados. 2) Considerar o uso do formato JSON (sem necessidade de codificação URL).
Q: Qual é a diferença entre codificação URL e codificação de entidades HTML?
A: A codificação URL e a codificação de entidades HTML são usadas em cenários diferentes. Codificação URL: 1) Propósito: Transmitir caracteres especiais em URLs. 2) Formato: %XX (ex.: %20). 3) Cenários: Parâmetros URL, envios de formulários. Codificação de entidades HTML: 1) Propósito: Exibir caracteres especiais em HTML. 2) Formato: &nome; (ex.: <) ou &#número; (ex.: <). 3) Cenários: Conteúdo HTML, valores de atributos. Exemplo: < → Codificação URL: %3C, Entidade HTML: < ou <.
Use Cases
Recomendado: Parâmetros de consulta URL
Passar parâmetros em strings de consulta URL é a aplicação mais comum da codificação URL. As strings de consulta começam com ?, os parâmetros são separados por &, e os nomes e valores dos parâmetros são conectados com =. Se os valores dos parâmetros contiverem caracteres especiais (como espaços, &, =), eles devem ser codificados em URL. O uso de encodeURIComponent() do JavaScript codifica corretamente os valores dos parâmetros.
- ✅ Usar encodeURIComponent() para codificar valores de parâmetros
- ✅ Usar a API URLSearchParams para construir strings de consulta
- ✅ O servidor usa as funções de decodificação correspondentes
- ❌ Não concatenar manualmente os parâmetros URL
- 💡 Considerar requisições POST para grandes quantidades de dados
Recomendado: Envio de formulário HTML
Os formulários HTML enviam dados usando codificação application/x-www-form-urlencoded, uma variante da codificação URL. Os dados do formulário são enviados no formato key=value&key=value, com espaços codificados como +, e outros caracteres especiais como %XX. Os navegadores modernos tratam automaticamente a codificação de formulários; os desenvolvedores normalmente não precisam codificar manualmente. No entanto, ao construir dados de formulário com JavaScript (como a API Fetch), é necessária codificação manual.
- ✅ Usar a API FormData para tratar automaticamente a codificação
- ✅ Usar URLSearchParams para construir dados de formulário
- ✅ O servidor decodifica corretamente os dados do formulário
- 💡 Para uploads de arquivos, usar multipart/form-data
Recomendado: Parâmetros de caminho de API RESTful
Em APIs RESTful, os identificadores de recursos podem conter caracteres especiais (como espaços, barras), requerendo codificação URL. Por exemplo, /usuarios/João Silva deve ser codificado como /usuarios/Jo%C3%A3o%20Silva. Use encodeURIComponent() para codificar parâmetros de caminho, garantindo que a API possa analisar corretamente os identificadores de recursos.
- ✅ Usar encodeURIComponent() para codificar parâmetros de caminho
- ✅ O servidor decodifica corretamente os parâmetros de caminho
- ✅ Considerar usar IDs em vez de nomes como identificadores de recursos
- 💡 Usar bibliotecas de templates URL (como path-to-regexp)
Recomendado: Autenticação OAuth
Parâmetros como redirect_uri e state em fluxos de autenticação OAuth precisam de codificação URL. Por exemplo, redirect_uri é tipicamente uma URL completa contendo parâmetros de consulta, que precisa ser codificada como um todo antes de ser passada como valor de parâmetro. Use encodeURIComponent() para codificar esses parâmetros, garantindo que o servidor OAuth possa analisá-los corretamente.
- ✅ Usar encodeURIComponent() para codificar redirect_uri
- ✅ Usar encodeURIComponent() para codificar o parâmetro state
- ✅ Verificar se o redirect_uri decodificado é válido
- 💡 Usar bibliotecas OAuth (como Passport.js) para tratamento automático
Recomendado: Consultas de motores de busca
As palavras-chave de busca precisam de codificação URL quando passadas em URLs. Por exemplo, a busca do Google por “olá mundo” tem a URL https://www.google.com/search?q=ol%C3%A1+mundo. Os motores de busca tratam automaticamente a codificação URL; os usuários normalmente não precisam codificar manualmente. No entanto, ao construir URLs de busca (como redirecionamentos automáticos), encodeURIComponent() deve ser usado para codificar as palavras-chave de busca.
- ✅ Usar encodeURIComponent() para codificar palavras-chave de busca
- ✅ Tratar múltiplas palavras-chave (separadas por espaços ou +)
- ✅ Considerar o uso de APIs de motores de busca
- 💡 Usar URLSearchParams para construir URLs de busca
Recomendado: Serviços de encurtamento de URL
Serviços de encurtamento de URL (como bit.ly) precisam codificar URLs longas antes de armazená-las e transmiti-las. URLs longas podem conter caracteres especiais (como parâmetros de consulta), requerendo codificação URL. Use encodeURIComponent() para codificar URLs longas, garantindo que o serviço de encurtamento possa analisá-las e restaurá-las corretamente. Note que os serviços de encurtamento tipicamente codificam a URL codificada novamente, então a decodificação pode requerer múltiplas passagens.
- ✅ Usar encodeURIComponent() para codificar URLs longas
- ✅ Verificar se as URLs decodificadas são válidas
- ✅ Tratar casos de codificação múltipla
- 💡 Usar APIs de serviços de encurtamento
Recomendações de melhores práticas
- Usar encodeURIComponent() para codificar valores de parâmetros URL, usar encodeURI() para codificar URLs completas.
- Espaços em strings de consulta são codificados como +, em caminhos como %20; usar encodeURIComponent() para codificar uniformemente como %20.
- Caracteres não ASCII usam codificação UTF-8; garantir que o servidor decodifique corretamente.
- Não concatenar manualmente os parâmetros URL; usar a API URLSearchParams ou a API FormData para tratamento automático de codificação.
- A codificação URL aumenta o tamanho dos dados; para grandes quantidades de dados, usar requisições POST ou formato JSON.
- Verificar se as URLs decodificadas são válidas para prevenir ataques de injeção URL.