tigtools

Codificador/Decodificador de URL

Codifique texto para usar em uma URL ou transforme escapes como %20 de volta em texto legível. Escolha Componente para um único valor ou URL completa para um endereço inteiro.

Executado no seu navegador Sem cadastro

Direção
O que você está codificando?

Componente (encodeURIComponent) codifica tudo, exceto letras, números e - _ . ! ~ * ' ( ). Use essa opção para um valor de consulta, campo de formulário ou segmento de caminho.

Como usar

  1. Escolha Codificar ou Decodificar.
  2. Escolha Componente para um único valor (como um parâmetro de consulta) ou URL completa para um endereço inteiro.
  3. Digite ou cole seu texto. O resultado aparece na hora à direita (ou abaixo, em celulares).
  4. Copie o resultado ou use “Usar saída como entrada” para inverter a operação e verificar o resultado.

Como funciona

URLs só podem conter um conjunto limitado de caracteres ASCII. Todos os outros caracteres, incluindo espaços, letras acentuadas e emojis, são representados por escapes percentuais: o caractere é convertido em bytes UTF-8, e cada byte se transforma em % seguido de dois dígitos hexadecimais. Um espaço vira %20, é vira %C3%A9 e € vira %E2%82%AC.

O modo Componente usa encodeURIComponent e decodeURIComponent do JavaScript. Ele escapa todos os caracteres com significado especial em uma URL, incluindo / ? # & = + : e @, para que o resultado possa ser inserido com segurança no valor de um parâmetro de consulta ou em um único segmento de caminho. Apenas A–Z, a–z, 0–9 e - _ . ! ~ * ' ( ) permanecem inalterados.

O modo URL completa usa encodeURI e decodeURI. Ele considera que a entrada já é uma URL completa e mantém intactos os caracteres reservados ; , / ? : @ & = + $ #, para que o endereço continue funcionando. Ao decodificar, decodeURI também mantém intactos os escapes desses caracteres reservados: %2F continua sendo %2F, porque transformá-lo em / mudaria o significado da URL.

A opção Dados de formulário segue application/x-www-form-urlencoded, o formato usado pelos navegadores ao enviar formulários HTML: um espaço é representado por + em vez de %20. Ao decodificar com essa opção, cada + vira um espaço; para representar um sinal de mais literal, use %2B.

A entrada inválida nunca é descartada. Se um % não for seguido por dois dígitos hexadecimais ou uma sequência de escapes não formar UTF-8 válido, a ferramenta mostra onde está o problema e mantém seu texto para que você possa corrigi-lo.

Exemplos

Inserir um valor em uma query string

Para pesquisar “Rock & Roll” em https://example.com/search?q=…, codifique apenas o valor no modo Componente: Rock%20%26%20Roll. Sem a codificação, o & encerraria o parâmetro q e iniciaria um novo parâmetro chamado “ Roll”.

Corrigir uma URL com espaços e acentos

No modo URL completa, https://example.com/menu/crème brûlée.html vira https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html. As barras e os dois-pontos permanecem como estão, então o link continua funcionando.

Ler dados de formulário registrados

Um log do servidor mostra name=Jane+Doe&city=S%C3%A3o+Paulo. Decodifique no modo Componente com “Tratar + como espaço” ativado para ler name=Jane Doe&city=São Paulo.

Perguntas frequentes

Qual é a diferença entre encodeURI e encodeURIComponent?

encodeURIComponent escapa os caracteres que separam as partes de uma URL (/ ? # & = + : @ e outros), por isso serve para uma única parte da URL. encodeURI mantém esses caracteres e serve para uma URL completa. Usar encodeURI em um valor de consulta é um erro comum: um & ou = dentro do valor não seria escapado e quebraria a query string.

Um espaço deve ser representado por %20 ou +?

No caminho de uma URL, um espaço é sempre representado por %20. Em uma query string, as duas formas aparecem: %20 é válido em qualquer situação, enquanto + representa um espaço apenas em dados codificados para formulário (application/x-www-form-urlencoded), como os usados por formulários HTML e por muitos frameworks de servidor ao interpretar query strings. Se tiver dúvida, use %20.

Por que ocorre um erro ao decodificar?

A decodificação falha quando um sinal de % não é seguido por dois dígitos hexadecimais (por exemplo, “50% off”) ou quando os bytes escapados não formam UTF-8 válido. Isso geralmente significa que o texto foi codificado com um conjunto de caracteres mais antigo, como Latin-1 (é como %E9 em vez de %C3%A9). A mensagem de erro mostra a posição do problema.

Por que %2F não virou uma barra no modo URL completa?

decodeURI mantém intencionalmente os escapes de caracteres reservados, como / ? # & e =, porque decodificá-los poderia mudar a forma como a URL é dividida em partes. Use o modo Componente para decodificar todos os escapes.

Quais caracteres nunca são codificados?

Os dois modos deixam A–Z, a–z, 0–9 e - _ . ! ~ * ' ( ) inalterados. O modo URL completa também deixa ; , / ? : @ & = + $ e # inalterados.

Privacidade

A codificação e a decodificação são feitas inteiramente no seu navegador, usando as funções JavaScript integradas. Seu texto e suas URLs não são enviados, armazenados nem incluídos em análises.