Como usar: Codificar / Decodificar URL
- Escolha um modo: Codificar componente para um único valor de query ou segmento de caminho, Codificar URL completa para um endereço inteiro, ou Decodificar.
- Digite ou cole no campo da esquerda; o resultado é atualizado conforme você digita.
- Use Espaços como + para a codificação no estilo de formulários HTML, ou Cada linha separadamente para processar uma lista.
- Cole qualquer URL no analisador de URL para ver o host, o caminho e uma tabela decodificada com os parâmetros de query.
O que é codificação de URL?
A codificação de URL, formalmente percent-encoding (RFC 3986), substitui caracteres que não são permitidos ou que têm significado especial em uma URL por um % seguido de dois dígitos hexadecimais. Um espaço vira %20, & vira %26, e caracteres não ASCII são primeiro convertidos em bytes UTF-8 e depois codificados byte a byte: é → %C3%A9, € → %E2%82%AC. Sem codificação, um valor como Tom & Jerry em uma query string seria dividido em dois parâmetros.
encodeURIComponent vs. encodeURI
O JavaScript oferece duas funções, e escolher a errada é um erro clássico:
| Caractere | encodeURIComponent | encodeURI |
|---|---|---|
| Espaço | %20 | %20 |
/ ? # & = : @ + , ; $ | Codificado | Mantido como está |
A–Z a–z 0–9 - _ . ! ~ * ' ( ) | Mantido | Mantido |
é, emoji, outros não ASCII | Codificado em percent-encoding UTF-8 | Codificado em percent-encoding UTF-8 |
Use encodeURIComponent (“Codificar componente”) para tudo que você insere dentro de uma URL — o valor de um parâmetro de query, um segmento de caminho, uma URL de redirecionamento passada como parâmetro. Use encodeURI (“Codificar URL completa”) apenas em uma URL completa que contenha somente espaços ou caracteres não ASCII, pois ela mantém intactos os caracteres estruturais : / ? # &.
%20 ou +?
No caminho de uma URL, um espaço deve ser %20. Em query strings enviadas por formulários HTML (application/x-www-form-urlencoded), os espaços são escritos como +. A maioria dos servidores aceita os dois na query string, mas um sinal de mais literal precisa ser enviado como %2B. O decodificador trata + como espaço por padrão; desmarque a opção se seus dados tiverem sinais de mais reais.
Erros de decodificação
Um % deve ser seguido por exatamente dois dígitos hexadecimais, e caracteres UTF-8 de múltiplos bytes precisam de todos os seus bytes. O decodeURIComponent() comum lança URIError: malformed URI sequence na primeira sequência inválida; esta ferramenta decodifica tudo que é válido, deixa as partes malformadas intactas e informa quais são elas. Strings codificadas duas vezes (%2520) aparecem como %20 após uma passagem — decodifique novamente para obter o espaço.
Anatomia de uma URL
https://user@shop.example.com:8443/search?q=shoes#results é composta por esquema (https:), credenciais opcionais, host, porta, caminho, query string e fragmento. O analisador acima usa a API de URL padrão do navegador (WHATWG URL Standard), a mesma usada pelo fetch(). Montando links de campanha? Experimente o UTM Builder. Precisa codificar dados binários? Use o Base64.
Também pesquisado como: percent encoding, urlencode, urldecode, encodeuricomponent, decodificar query string, parser de url, escape de url.
Ferramentas que combinam com: Codificar / Decodificar URL
- Codificador de Entidades HTML — Escape < > & " para que o texto possa ser exibido com segurança no HTML, converta acentos e símbolos em entidades nomeadas ou numéricas, ou decodifique HTML cheio de entidades de volta para texto simples.
- Gerador de Slug — Converta qualquer título em um slug de URL limpo e em minúsculas, com transliteração correta de acentos, umlauts e cirílico, remoção opcional de stop words e um modo em massa para listas inteiras.
- Decodificador JWT — Cole um JSON Web Token para analisar seu cabeçalho e sua carga, verificar quando ele expira e conferir sua assinatura.
- Tradutor de código Morse — Digite um texto para obter o código Morse ou cole pontos e traços para decifrá-los — depois, ouça, veja os sinais piscarem e baixe o áudio.
Perguntas frequentes
Quando devo usar encodeURIComponent em vez de encodeURI?
/ ? & # = sem codificar.Por que um espaço às vezes é %20 e às vezes +?
%20 é a codificação da RFC 3986, válida em qualquer parte de uma URL. + significa espaço apenas em query strings codificadas por formulário (application/x-www-form-urlencoded), que é o que os formulários HTML enviam.O que significa “URIError: malformed URI sequence”?
% que não é seguido por dois dígitos hexadecimais, ou uma sequência de bytes UTF-8 incompleta. Este decodificador deixa essas partes inalteradas e as lista, em vez de falhar.Quais caracteres nunca precisam ser codificados?
A–Z a–z, dígitos 0–9 e - _ . ~. Todos os outros ou são reservados para a sintaxe de URL ou precisam ser codificados em percent-encoding.