Codificador/Decodificador de URL

Codifique caracteres especiais para URLs ou decodifique strings URL codificadas em porcentagem. Essencial para desenvolvimento web e trabalho com APIs.

Como Usar

  1. Insira ou cole seu texto ou URL na área de entrada
  2. Clique em Codificar para codificar caracteres especiais em porcentagem, ou em Decodificar para converter de volta
  3. Copie o resultado para usar na sua aplicação

Perguntas Frequentes

  • O que é codificação de URL?

    A codificação de URL (também chamada de codificação percentual) substitui caracteres especiais por um sinal de porcentagem seguido de seu valor hexadecimal. Por exemplo, um espaço se torna %20.

  • Quando devo codificar URL?

    Codifique URLs ao incluir caracteres especiais em parâmetros de URL, strings de consulta ou dados de formulário que serão enviados via HTTP.

  • Qual é a diferença entre encodeURI e encodeURIComponent?

    encodeURI codifica um URI completo, preservando caracteres como :, / e ?. encodeURIComponent codifica tudo exceto letras, dígitos e alguns caracteres especiais, tornando-o adequado para codificar valores de parâmetros individuais.

  • Esta ferramenta lida com caracteres Unicode?

    Sim, os caracteres Unicode são primeiro codificados em bytes UTF-8 e, em seguida, cada byte é codificado em porcentagem.

O Que é Codificação de URL?

URLs (Uniform Resource Locators) são definidas pelo padrão RFC 3986 e só podem conter um conjunto restrito de caracteres ASCII: letras (A–Z, a–z), dígitos (0–9) e alguns caracteres especiais reservados como -, _, ., ~. Qualquer outro caractere — incluindo espaços, acentos, símbolos como &, =, # e todos os caracteres Unicode — precisa ser codificado em porcentagem (percent-encoding) para ser incluído em uma URL de forma segura.

A codificação funciona substituindo cada byte problemático por um sinal % seguido de dois dígitos hexadecimais. Um espaço (byte 0x20) vira %20, uma arroba @ (byte 0x40) vira %40, e assim por diante.

Por Que Alguns Caracteres São "Reservados"?

Na estrutura de uma URL, certos caracteres têm significado especial:

  • / — separador de caminho
  • ? — início da query string
  • & — separador de parâmetros
  • = — separador de chave/valor
  • # — início do fragmento (âncora)

Se um desses caracteres aparecer dentro do valor de um parâmetro, sem codificação, o navegador e o servidor interpretarão mal a URL. Por exemplo, ?nome=João & Silva quebraria o parsing porque o & seria interpretado como início de um novo parâmetro.

encodeURI vs. encodeURIComponent

JavaScript oferece duas funções nativas para codificação de URL, e entender a diferença é fundamental:

encodeURI()

Codifica uma URL completa, preservando os caracteres que fazem parte da estrutura da URL: :, /, ?, &, =, #, @. Use quando você tem uma URL inteira e quer apenas torná-la segura para transmissão.

encodeURI("https://exemplo.com/busca?q=café & bolo")
// → "https://exemplo.com/busca?q=caf%C3%A9%20&%20bolo"

encodeURIComponent()

Codifica tudo, incluindo os caracteres estruturais da URL. É a função correta para codificar o valor de um parâmetro individual:

encodeURIComponent("café & bolo")
// → "caf%C3%A9%20%26%20bolo"

Note que & foi codificado para %26 — essencial quando ele faz parte de um valor, não de um separador.

Caracteres Unicode e UTF-8

O padrão RFC 3986 exige que caracteres fora do ASCII sejam primeiro codificados em bytes UTF-8 e depois cada byte seja representado como %XX. Por isso, o acento é (U+00E9) vira dois bytes em UTF-8 (0xC3 0xA9) e é representado como %C3%A9 na URL.

Isso é especialmente relevante para URLs em português, que frequentemente contêm letras acentuadas. Servidores web modernos decodificam automaticamente esses valores, mas é importante garantir que a codificação seja feita antes de montar a URL.

Casos Práticos

  • Formulários HTML: valores de campos <input> são automaticamente codificados quando enviados via GET ou POST, mas você precisa codificar manualmente ao construir URLs via JavaScript.
  • APIs REST: parâmetros de busca com caracteres especiais devem ser codificados para garantir que a requisição chegue correta ao servidor.
  • Slugs de URLs amigáveis: ao converter títulos de artigos em URLs ("Olá, Mundo!" → "ola-mundo"), caracteres acentuados e especiais precisam ser removidos ou codificados.
  • Compartilhamento de links: links gerados dinamicamente com dados do usuário devem ser codificados para evitar quebras.