Codificador e decodificador de URL
Roda no seu navegador; nada é enviado
Aplique percent-encoding em textos para uma URL, decodifique de volta, ou separe uma URL em partes e parâmetros de query.
Text
Encodes everything except letters, digits and - _ . ! ~ * ' ( ). Use it for one query value or path segment.
Encoded
The encoded text appears here as you type.
O que é codificação de URL?
A codificação de URL, também chamada de percent-encoding (RFC 3986), substitui caracteres que não são permitidos ou têm significado especial numa URL por um % seguido de dois dígitos hexadecimais. Um espaço vira %20, & vira %26 e / vira %2F. Os outros caracteres são convertidos primeiro em bytes UTF-8, então é vira %C3%A9.
Isso importa porque alguns caracteres estruturam a própria URL. ? inicia a query string, & separa parâmetros, = separa um nome do seu valor e # inicia o fragmento. Se um termo de busca contém & e não é codificado, o servidor lê esse & como o início de um novo parâmetro.
Codifique cada valor separadamente, não a URL inteira. Codificar uma URL completa como valor também codifica o ://, as / e o ?, o que a quebra; é para isso que existe o modo de URL inteira, quando você só precisa corrigir espaços e acentos numa URL que, fora isso, está correta.
Como usar esta ferramenta
- 1Escolha Encode, Decode ou Parse. Trocar de modo mantém seu texto; Swap (Alt+Shift+S) move a saída para a entrada e alterna entre Encode e Decode.
- 2Para codificar, escolha o que é o texto: um valor (
encodeURIComponent), uma URL inteira (encodeURI) ou dados de formulário, em que espaços viram+. A linha acima do editor diz exatamente quais caracteres cada opção mantém. - 3Para decodificar, cole o texto codificado. Ative + means space para dados de formulário e query strings enviadas por formulários HTML. Se uma sequência estiver malformada ou não for UTF-8, ela fica marcada no editor e F8 leva até ela.
- 4Se o resultado ainda tiver
%XX, o texto foi codificado duas vezes; Decode again na barra de status decodifica mais uma vez. - 5Each line separately trata cada linha como um valor próprio, para listas de valores. Parse separa uma URL em scheme, host, porta, path, fragmento e uma tabela de parâmetros de query decodificados, que você pode copiar como JSON.
Solução de problemas
%precisa ser seguido de dois dígitos hexadecimais- O texto tem um sinal de porcentagem literal, como
100%, ou uma sequência que foi cortada. Numa URL, um sinal de porcentagem de verdade é escrito%25. %E9não é UTF-8 válido neste ponto- O texto foi codificado por um codificador antigo que usava Latin-1 em vez de UTF-8, então
évirou%E9em vez de%C3%A9. Codifique de novo o texto original, ou peça para quem envia usar UTF-8. - Um
+virou espaço, ou um espaço continuou+ +só significa espaço em dados de formulário (application/x-www-form-urlencoded), como uma query string enviada por um formulário HTML. Ligue ou desligue + means space de acordo com a origem do texto.- Não é uma URL absoluta
- Parse precisa do scheme e do host, como
https://api.example.com. Paths como/users?page=2são relativos a uma página e não podem ser lidos sozinhos.
Perguntas frequentes
Qual a diferença entre encodeURI e encodeURIComponent?
encodeURIComponent codifica tudo, menos letras, dígitos e - _ . ! ~ * ' ( ), então é o certo para um único valor. encodeURI mantém intactos os caracteres que estruturam uma URL, como : / ? # & = +, então é o certo para uma URL inteira que só precisa ter caracteres inseguros corrigidos.
Um espaço deve ser %20 ou +?
Num path e na maioria das APIs, use %20. + só significa espaço em dados de formulário, que é o que os navegadores enviam em formulários HTML e o que muitas query strings usam. Ao decodificar uma query string gerada por um formulário, ative + means space.
Por que o Parse mostra uma URL diferente da que eu colei?
O Parse usa o parser de URL do navegador, que normaliza a URL: deixa o scheme e o host em minúsculas, remove uma porta padrão como :443 e aplica percent-encoding em espaços e caracteres não ASCII. Copy URL copia essa forma normalizada.
Minha entrada é enviada para um servidor?
Não. A codificação, a decodificação e o parse rodam no seu navegador, e nada do que você cola é enviado. Para sobreviver a um reload, o que você cola fica no session storage desta aba até você limpar ou fechar a aba. Copy link coloca a entrada no link depois do #, parte que os navegadores nunca enviam a um servidor, mas qualquer pessoa que receber o link consegue ler.