O que é Codificador/Decodificador de URL?

O Codificador/Descodificador de URL converte caracteres especiais em URLs para a sua forma percentualmente codificada e vice-versa. Útil ao trabalhar com cadeias de consulta, parâmetros de API ou URLs que contenham espaços ou caracteres especiais.

Há quatro modos de codificação. O modo Component (encodeURIComponent) escapa todo caractere reservado, incluindo barras e &, que é o ideal dentro do valor de um parâmetro. O modo Full URL (encodeURI) preserva os caracteres estruturais para o endereço inteiro continuar válido. O modo de dados de formulário codifica espaços como + para envios application/x-www-form-urlencoded. O modo RFC 3986 estrito vai além e também escapa !'()*, os subdelimitadores que o encodeURIComponent ignora, de modo que a saída cabe em qualquer URL conforme a norma. O Auto-detect examina se há sequências %XX e escolhe a direção sozinho, o botão Ao vivo refaz a conversão enquanto você digita, a opção Decodificar em laço desfaz valores com dupla ou tripla codificação até não sobrar nada, e um painel de comparação mostra a mesma entrada codificada pelos quatro modos de uma vez.

Como usar

  1. Cole um URL ou uma cadeia de texto no campo de entrada.
  2. Clique em Codificar para converter caracteres especiais para a forma percentual, ou em Descodificar para converter de volta.
  3. Copie o resultado para a área de transferência ou use o botão de troca para alternar a entrada/saída.

Quando usar

  • Montar uma query string na mão precisando escapar espaços, & e =.
  • Ler uma linha de log do servidor com percent-encoding e devolvê-la a texto legível.
  • Colar uma URL em outro idioma com caracteres não ASCII em um e-mail só texto sem quebrar.

Resultado

Um programador codifica "hello world&foo=bar" para "hello%20world%26foo%3Dbar" para usar num parâmetro de cadeia de consulta.

Perguntas frequentes

Qual a diferença entre encodeURI e encodeURIComponent?
encodeURI deixa os símbolos estruturais /, ?, & e = intocados para a URL inteira seguir funcionando. encodeURIComponent escapa todos eles, o que é correto quando o texto é apenas um valor de parâmetro colocado depois do ? da query.
Por que minha string decodificada ainda tem %20?
Ou a origem estava codificada duas vezes (uma rodada produz outra string codificada e é preciso decodificar de novo), ou trata-se de form-encoded onde + representa espaço. Tente decodificar duas vezes ou troque + por espaço antes de decodificar.
Quais caracteres uma URL aceita sem precisar codificar?
Caracteres não reservados: A–Z, a–z, 0–9 e quatro símbolos: hífen, sublinhado, ponto e til. Tudo mais, incluindo espaços, letras fora do ASCII e caracteres reservados em contextos sem papel sintático, precisa de percent-encoding.
Codificar a mesma string duas vezes quebra a string?
Sim. A codificação dupla transforma cada % em %25, e depois precisa de duas decodificações para voltar ao original. Se você concatena um valor de outro sistema que pode vir já codificado, decodifique uma vez antes ou carregue uma flag de estado.
A ferramenta suporta caracteres unicode como chinês ou árabe?
Sim. A função nativa encodeURIComponent do navegador gera a sequência de bytes UTF-8 de qualquer caractere e depois codifica cada byte. A decodificação inverte o processo: 'café' vai e volta como 'caf%C3%A9', seja qual for o idioma.

Ferramentas relacionadas