Codificador / Descodificador de URL
Codifique texto para utilização em URLs e strings de consulta, ou descodifique URLs codificados em percentual de volta para texto legível — com suporte completo a Unicode, tudo no seu navegador.
Saída
Como utilizar
Escolha Codificar ou Descodificar e cole o seu texto ou URL. Por padrão, codifica um valor único (escapando caracteres como & = ? /). Active 'URI Completo' para manter a estrutura de um URL intacta e escapar apenas caracteres inseguros. Clique em copiar para obter o resultado. Codificação de URL, também chamada de codificação em percentual, é a forma padrão de tornar o texto seguro para colocar dentro de um URL ou de uma string de consulta. Qualquer caractere fora de um pequeno conjunto de caracteres ASCII reservados e não reservados é substituído por um sinal de percentagem seguido de dois dígitos hexadecimais que representam o valor do byte desse caractere — um espaço torna-se %20, um e comercial torna-se %26, e assim por diante. Os URLs só permitem um conjunto limitado de caracteres ASCII: letras, dígitos e uma série de sinais de pontuação como - _ . ~. Tudo o resto, incluindo espaços, aspas e letras não-inglesas, tem de ser escapado antes de viajar com segurança dentro de um URL. Sem codificação, um navegador ou servidor pode não compreender corretamente onde uma parte de um URL termina e outra começa — um & não escapado dentro de um valor parece ser o início de um novo parâmetro de consulta, um ? não escapado parece ser o início da string de consulta em si, e um # não escapado é tratado como um identificador de fragmento, silenciosamente cortando tudo o que vem depois. Tome a frase "café & bar" como um exemplo de valor de consulta. Os espaços tornam-se %20, o e comercial torna-se %26, e o é acentuado — que ocupa dois bytes em UTF-8 — torna-se %C3%A9. Codificado em percentual, a frase torna-se caf%C3%A9%20%26%20bar. A descodificação inverte o processo: cada par %XX é lido de volta como um byte UTF-8 e remontado no caractere original, portanto descodificar essa string devolve café & bar exatamente como começou. Codificar um URL inteiro e codificar um valor de string de consulta única são tarefas diferentes. Codificação de URI completo escapa caracteres inseguros mas deliberadamente deixa os caracteres estruturais de um URL — / : ? & = # — intactos, uma vez que removê-los quebraria a própria sintaxe do URL. Codificação de componente (o padrão aqui) também escapa esses mesmos caracteres, porque um valor a ser inserido numa string de consulta nunca deve ser permitido introduzir um & ou = extraviado que um servidor confundisse com um novo parâmetro. Codificação em percentual surge constantemente no trabalho web do dia a dia: construindo um parâmetro de consulta a partir da entrada do utilizador, partilhando uma ligação que inclui um termo ou filtro de pesquisa, montando URLs de pedidos de API, submetendo dados de formulário via GET, e construindo parâmetros UTM para ligações de marketing. É também a solução para o erro clássico "URI malformado" lançado por decodeURIComponent — esse erro significa que a string a ser descodificada contém um % que não é seguido por dois dígitos hexadecimais válidos, geralmente porque foi codificada incorretamente ou codificada duas vezes.
Perguntas frequentes
- Qual é a diferença entre codificar um componente e um URI completo?
- Codificação de componente (o padrão) escapa caracteres reservados como & = ? /, por isso é apropriada para um valor de consulta único. Codificação de URI completo deixa esses caracteres no lugar, por isso é apropriada para um URL inteiro.
- Processa caracteres não-ingleses?
- Sim. O texto é codificado em percentual como UTF-8, portanto os acentos, emojis e caracteres CJK são codificados e descodificados corretamente.
- E se colar texto codificado inválido?
- Se um escape de percentagem for malformado (como um % isolado), a descodificação apresenta um erro em vez de produzir dados sem sentido.
- Por que um espaço às vezes se torna %20 e outras vezes um +?
- Ambos representam um espaço, mas em contextos diferentes. Codificação em percentual (RFC 3986) sempre utiliza %20, que é o que esta ferramenta produz. O caractere + é uma convenção legada do formato antigo application/x-www-form-urlencoded utilizado em submissões de formulários HTML, onde + significa espaço e um sinal de mais literal deve ele próprio ser codificado como %2B.