Codificador / Decodificador de URL
Codifique texto para uso em URLs e strings de consulta, ou decodifique URLs codificadas por porcentagem para texto legível — com suporte Unicode completo, tudo no seu navegador.
Saída
Como usar
Escolha Codificar ou Decodificar e cole seu texto ou URL. Por padrão, ele codifica um valor único (escapando caracteres como & = ? /). Ative 'URI completa' para manter a estrutura de uma URL intacta e escapar apenas caracteres inseguros. Clique copiar para obter o resultado. A codificação de URL, também chamada de codificação por porcentagem, é a forma padrão de tornar o texto seguro para colocar dentro de uma URL ou string de consulta. Qualquer caractere fora de um pequeno conjunto de caracteres ASCII reservados e não reservados é substituído por um sinal de porcentagem seguido de dois dígitos hexadecimais representando o valor do byte desse caractere — um espaço se torna %20, um e-comercial se torna %26, e assim por diante. As URLs permitem apenas um conjunto limitado de caracteres ASCII: letras, dígitos e um punhado de marcas de pontuação como - _ . ~. Tudo mais, incluindo espaços, aspas e letras não-inglesas, deve ser escapado antes de poder viajar com segurança dentro de uma URL. Sem a codificação, um navegador ou servidor pode mal interpretar onde uma parte de uma URL termina e outra começa — um & não escapado dentro de um valor parece o início de um novo parâmetro de consulta, um ? não escapado parece o início da própria string de consulta, e um # não escapado é tratado como um identificador de fragmento, cortando silenciosamente tudo após ele. Tome a frase "café & bar" como um exemplo de valor de consulta. Os caracteres de espaço se tornam %20, o e-comercial se torna %26, e o é acentuado — que ocupa dois bytes em UTF-8 — se torna %C3%A9. Codificado por porcentagem, a frase se transforma em caf%C3%A9%20%26%20bar. Decodificar reverte o processo: cada par %XX é lido como um byte UTF-8 e remontado para o caractere original, portanto decodificar essa string retorna café & bar exatamente como começou. Codificar uma URL inteira e codificar um valor de string de consulta único são trabalhos diferentes. A codificação Full-URI escapa caracteres inseguros mas deliberadamente deixa os caracteres estruturais de uma URL — / : ? & = # — intactos, já que removê-los quebraria a própria sintaxe da URL. A codificação de componente (o padrão aqui) escapa esses mesmos caracteres também, porque um valor sendo inserido em uma string de consulta nunca deve ser permitido introduzir um & ou = que um servidor pudesse confundir com um novo parâmetro. A codificação por porcentagem aparece constantemente no trabalho web cotidiano: construir um parâmetro de consulta a partir da entrada do usuário, compartilhar um link que inclua um termo de busca ou filtro, montar URLs de requisição de API, enviar dados de formulário via GET e construir parâmetros UTM para links de marketing. É também a correção para o clássico erro "URI malformada" lançado por decodeURIComponent — esse erro significa que a string sendo decodificada 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 uma URI completa?
- A codificação de componente (padrão) escapa caracteres reservados como & = ? /, portanto é correta para um valor de consulta único. A codificação Full-URI deixa esses caracteres em seu lugar, portanto é correta para uma URL inteira.
- Ele lida com caracteres não-ingleses?
- Sim. O texto é codificado por porcentagem como UTF-8, portanto acentos, emoji e caracteres CJK são codificados e decodificados corretamente.
- E se colar texto codificado inválido?
- Se um escape de porcentagem for malformado (como um % isolado), a decodificação mostra um erro em vez de produzir lixo.
- Por que um espaço às vezes se torna %20 e outras vezes um +?
- Ambos representam um espaço, mas em contextos diferentes. A codificação por porcentagem (RFC 3986) sempre usa %20, que é o que esta ferramenta produz. O caractere + é uma convenção legada do formato application/x-www-form-urlencoded mais antigo usado por envios de formulário HTML, onde + significa espaço e um sinal de mais literal deve ser codificado como %2B.