Codificador / Decodificador de URL
Codifique ou decodifique componentes de URL conforme RFC 3986.
Seus dados nunca saem do seu navegador
Sobre a Codificação de URL
A codificação de URL (codificação percentual) substitui caracteres inseguros em URIs por um sinal de porcentagem seguido de dois dígitos hexadecimais representando o valor do byte. A RFC 3986 define o conjunto de caracteres não reservados (A-Z, a-z, 0-9, -, ., _, ~) que nunca precisam de codificação. Todos os outros caracteres, incluindo espaços, e-comerciais e texto não-ASCII, devem ser codificados quando usados em componentes de URI.
Caracteres não-ASCII como letras acentuadas ou ideogramas CJK são primeiro codificados como bytes UTF-8, depois cada byte é codificado percentualmente de forma individual. Por exemplo, o caractere e-agudo (U+00E9) se torna %C3%A9 porque sua representação UTF-8 são os dois bytes 0xC3 e 0xA9. Por isso um único caractere pode produzir múltiplos tripletos codificados.
Esta ferramenta oferece dois modos: modo componente (para codificar parâmetros de consulta ou segmentos de caminho individuais) e modo URL completa (que preserva os caracteres estruturais :, /, ?, # e &). Todo o processamento é executado do lado do cliente usando as funções integradas encodeURIComponent e decodeURIComponent.
Perguntas Frequentes
O que é codificação de URL (codificação percentual)?
A codificação de URL, também chamada de codificação percentual, substitui caracteres que não são permitidos ou têm significado especial em uma URI por um sinal de porcentagem (%) seguido de dois dígitos hexadecimais representando o valor do byte do caractere. A RFC 3986 define os caracteres não reservados (A-Z, a-z, 0-9, -, ., _, ~) que nunca precisam de codificação. Todo o resto, incluindo espaços, e-comerciais e texto não-ASCII, deve ser codificado quando usado dentro de componentes URI.
Quais caracteres precisam ser codificados em URLs?
Qualquer caractere fora do conjunto não reservado (letras, dígitos, -, ., _, ~) deve ser codificado percentualmente quando aparece dentro de um componente URI como um parâmetro de consulta ou segmento de caminho. Exemplos comuns incluem espaço (%20), e-comercial (%26), igual (%3D), mais (%2B) e barra (%2F). Os caracteres reservados (:, /, ?, #, &, =) têm significado estrutural em uma URL completa e só são codificados quando usados como dados literais dentro de um componente.
Qual é a diferença entre codificação de componente e de URL completa?
A codificação de componente (encodeURIComponent) trata a entrada como um único componente URI e codifica cada caractere que não é não reservado, incluindo delimitadores estruturais como /, ? e &. A codificação de URL completa preserva esses caracteres estruturais para que a URL permaneça navegável enquanto codifica caracteres inseguros dentro de cada segmento. Use o modo componente para valores individuais de consulta ou segmentos de caminho, e o modo URL completa ao codificar uma URL inteira que deve manter sua estrutura.
Como os caracteres não-ASCII são codificados em URLs?
Os caracteres não-ASCII são primeiro convertidos para sua representação em bytes UTF-8, depois cada byte é codificado percentualmente de forma individual. Por exemplo, a letra acentuada é (U+00E9) codifica como %C3%A9 porque sua forma UTF-8 são os dois bytes 0xC3 e 0xA9. Um único caractere chinês, japonês ou coreano pode produzir três tripletos codificados porque caracteres CJK normalmente requerem três bytes UTF-8.
Por que os espaços às vezes aparecem como + e às vezes como %20?
O sinal de mais (+) como codificação de espaço vem do formato application/x-www-form-urlencoded usado nas submissões de formulários HTML. Esta é uma convenção herdada dos primeiros padrões da web. A codificação percentual da RFC 3986 sempre usa %20 para espaços. Na prática, + só é válido como espaço em query strings de dados de formulário. A função encodeURIComponent usada por esta ferramenta sempre produz %20, que é universalmente aceito.