Codificador de URL
Codifique em porcentagem qualquer string para usar com segurança em URLs e valores de parâmetros de consulta
Texto Simples
Codificado em Porcentagem
O que é o Codificador de URL?
Solte uma string no painel da esquerda e o painel da direita mostra a versão codificada em porcentagem. Por baixo dos panos roda o encodeURIComponent, que escapa todo caractere com significado especial em uma URL — espaços viram %20, e-comerciais viram %26, o arroba vira %40, e por aí vai. Essa é a codificação que você quer para VALORES de parâmetros de consulta, segmentos de caminho, e em qualquer lugar onde uma string crua precise viajar dentro de uma URL sem quebrá-la.
Existem dois sabores de codificação e a diferença importa. encodeURIComponent (esta página) escapa tudo que é especial, incluindo ?, #, &, = e / — porque, no nível do valor, esses caracteres mudariam o sentido da URL. encodeURI é mais permissivo e deixa esses caracteres estruturais em paz, porque parte do princípio de que você está codificando uma URL já totalmente formada. A MDN tem a tabela dos caracteres reservados se quiser os detalhes. Se você está montando uma URL inteira a partir de partes, o que você quer é o URL Builder, não esta página.
A regra de codificação de fato vem do RFC 3986 §2.1: cada byte inseguro é escrito como % seguido de dois dígitos hexadecimais dos seus bytes UTF-8. É por isso que um emoji como o foguete sai com quatro tripletes percentuais (são quatro bytes UTF-8), enquanto um ASCII como ! fica com um. O padrão URL do WHATWG formaliza como os navegadores modernos fazem isso, e o artigo da Wikipédia sobre codificação porcentual tem uma tabela limpa para você conferir na mão se quiser. Tudo acontece no seu navegador. Nada é enviado, nada é registrado.
Como usar o Codificador de URL
Três passos. A página atualiza enquanto você digita — sem botão Converter.
Cole sua string ou clique em Exemplo
Digite ou cole qualquer texto no painel da esquerda. Clique em Exemplo para carregar uma string com os tipos de caracteres que você realmente encontra — espaços, e-comerciais, um e-mail, um sinal de porcentagem. Entrada de exemplo:
Ava Chen & friends? [email protected] 100% off!Unicode e emojis funcionam normalmente — o codificador usa sequências de bytes UTF-8, então um nome japonês ou um emoji é codificado como uma sequência percentual multibyte e faz a ida e volta limpinho com qualquer decodificador que siga o padrão.
Leia a saída codificada
O painel da direita mostra a versão codificada em porcentagem. Espaços viram %20, & vira %26, ? vira %3F, @ vira %40, e % em si vira %25. Atualiza enquanto você digita.
Copie ou baixe
Clique em Copiar para colocar a string codificada na área de transferência, ou em Baixar para salvar como arquivo .txt. Use Limpar no painel de entrada para começar de novo. Para ir no sentido contrário, passe pelo Decodificador de URL.
Quando você usaria isso de verdade
Montar um valor de query string na mão
Precisa construir ?customer=Ava%20Chen&status=active para um teste rápido com curl ou um deep link? Codifique cada valor aqui e cole na sua URL. Esquecer de codificar um valor com & dentro (um nome como "Smith & Co.") é uma fonte clássica daquele bug misterioso "a API só vê metade do meu parâmetro".
Codificar uma URL de redirecionamento
Fluxos OAuth e redirecionamentos SSO passam a URL de destino dentro de um parâmetro de consulta (ex: ?return_to=...). Essa URL de destino contém :, /, ?, & — e cada um deles tem que ser codificado em porcentagem para a URL externa continuar bem formada. A RFC 6749 §3.1.2 aponta isso explicitamente para URIs de redirecionamento OAuth.
Codificar um segmento de caminho com barra dentro
Se sua API REST tem rotas como /repos/:owner/:name e o nome contém uma barra (raro, mas legal em alguns catálogos), a barra precisa ser codificada como %2F ou o roteador vai tratar como separador de caminho. Mesma lógica para nomes de arquivo com espaços ou acentos em URLs de download.
Higienizar entrada de usuário antes de chegar à URL
Qualquer string indo para uma URL a partir de um formulário HTML, uma caixa de busca, ou uma importação CSV precisa ser codificada. Entrada de usuário sem codificação é exatamente como você acaba com links quebrados, vetores de injeção de parâmetros, ou URLs que funcionam para usuários ASCII e falham silenciosamente para todos os outros. As notas da OWASP sobre path traversal são um bom lembrete do que pular esse passo custa.
Perguntas Comuns
Devo usar encodeURIComponent ou encodeURI?
Quase sempre encodeURIComponent — é o que esta página usa. É a escolha certa para valores de parâmetros de consulta, segmentos de caminho, e em qualquer lugar onde uma string precisa ser uma "peça" da URL. encodeURI é para codificar uma URL que já está estruturalmente completa (raro na prática — normalmente você está construindo a partir de partes). A referência da MDN linkada acima tem a tabela completa de quais caracteres cada um escapa.
Por que + às vezes é usado para espaços e às vezes %20?
Duas tradições de codificação convivem lado a lado. application/x-www-form-urlencoded (o corpo ?chave=valor de um envio de formulário HTML) usa + para espaço. A codificação percentual geral do RFC 3986 usa %20. encodeURIComponent sempre produz %20. A maioria dos servidores aceita qualquer um, mas se o seu decodificador downstream for estrito em modo formulário, troque com .replace(/%20/g, "+") depois de codificar.
Trata bem emojis e texto não-ASCII?
Sim. O codificador serializa a entrada como UTF-8 primeiro, e depois codifica em porcentagem cada byte. Então um emoji vira uma sequência percentual multibyte, e qualquer decodificador que siga o padrão faz o roundtrip de volta. Se você está integrando com um sistema que usa Latin-1 ou outra codificação legada, você tem outro problema — mude o sistema upstream, não improvise um codificador não-UTF-8.
Quais caracteres encodeURIComponent NÃO codifica?
Letras A-Z e a-z, dígitos 0-9, e os caracteres não reservados - _ . ! ~ * ' ( ). Tudo mais é codificado em porcentagem. A lista vem direto da especificação original e é fixa em todo motor JavaScript moderno — veja a especificação ECMAScript de encodeURIComponent se quiser capítulo e versículo.
A entrada que eu colo aqui é enviada para algum lugar?
Não. A codificação roda inteiramente no seu navegador via motor JavaScript. Não tem chamada de rede, nem servidor, nem log. Cole segredos, tokens, qualquer coisa sensível — não sai da sua máquina.
Que tamanho de string posso codificar aqui?
Tem um limite de 256 KB na entrada. Valores reais de URL têm no máximo alguns kilobytes. Se você precisa codificar vários MB de dados, quase certamente está tentando embutir um payload em uma URL quando deveria estar fazendo POST de um corpo — codifique no servidor e pule a ida e volta.
Outras ferramentas de URL e codificação
Codificar é uma operação. Aqui está o que combina naturalmente: