Codificar e decodificar URL online
Codificar uma URL (percent-encoding) troca os caracteres que não podem aparecer em uma URL, como espaços e acentos, por sequências no formato %XX. Esta ferramenta codifica e decodifica tanto um trecho, como o valor de um parâmetro, quanto uma URL completa, e roda no seu navegador.
A conversão é feita no seu navegador e o texto não é enviado a nenhum servidor.
Achou um resultado errado ou tem uma sugestão? Avise por e-mail.
Como usar
- Escolha Codificar ou Decodificar.
- Escolha Trecho (parâmetro) para o valor de um parâmetro ou URL completa para um endereço inteiro.
- Cole o texto no campo de entrada e copie o resultado.
Como funciona
Cada caractere fora do conjunto permitido é convertido para bytes UTF-8, e cada byte vira %XX em hexadecimal. Por isso o é de café vira %C3%A9, dois bytes, e o espaço vira %20.
No modo Trecho, os caracteres reservados também são codificados (como & ? = / # e +), o que é o certo para o valor de um parâmetro. No modo URL completa, esses caracteres são mantidos, para que o endereço continue funcionando.
Em formulários (application/x-www-form-urlencoded), o espaço costuma vir como +. Ao decodificar, marque Tratar + como espaço nesse caso. Na codificação padrão de URL, o + é um caractere comum.
Exemplo de trecho com acento e símbolos
Texto: café & pão
Codificado: caf%C3%A9%20%26%20p%C3%A3o
Em código
Para codificar um valor de URL em código, use a função de componente (espaço vira %20). Para a query string inteira, use o montador da linguagem (espaço vira +).
// Um valor dentro da URL (parâmetro, trecho do caminho): espaço vira %20
function codificarParametro(valor) {
return encodeURIComponent(valor);
}
// A query string inteira, no formato de formulário: espaço vira +
function montarQuery(params) {
return new URLSearchParams(params).toString();
}
// Ler a query string: o URLSearchParams entende tanto + quanto %20
function lerQuery(query) {
return Object.fromEntries(new URLSearchParams(query));
} from urllib.parse import parse_qsl, quote, urlencode
def codificar_parametro(valor: str) -> str:
return quote(valor, safe="") # espaço vira %20; sem safe="", a barra passaria
def montar_query(params: dict) -> str:
return urlencode(params) # espaço vira +
def ler_query(query: str) -> dict:
return dict(parse_qsl(query, keep_blank_values=True)) <?php
function codificarParametro(string $valor): string
{
return rawurlencode($valor); // espaço vira %20
}
function montarQuery(array $params): string
{
return http_build_query($params); // espaço vira +
}
function lerQuery(string $query): array
{
parse_str($query, $params);
return $params;
} Perguntas frequentes
Qual a diferença entre codificar um trecho e uma URL completa?
Ao codificar um trecho, símbolos como / ? & = também são convertidos, para que o valor não interfira na estrutura da URL. Ao codificar uma URL completa, esses símbolos são preservados, senão o endereço deixaria de funcionar.
O espaço é %20 ou +?
Na URL propriamente dita, é %20. O + como espaço vale só em dados de formulário (application/x-www-form-urlencoded), como nos parâmetros de uma consulta enviada por um form.
Por que a decodificação dá erro?
Porque há um % sem os dois dígitos hexadecimais depois dele, ou uma sequência que não forma um caractere UTF-8 válido. Confira se o texto foi copiado por inteiro.
O que é codificar duas vezes?
É aplicar a codificação a um texto que já estava codificado, então o % vira %25 (por exemplo, %20 vira %2520). Se o resultado tem %25, provavelmente houve dupla codificação: decodifique uma vez.
Guias sobre este assunto
- Como gerar slug de URL a partir de texto com acentosComo transformar um título com acentos em slug de URL (Ação e Reação vira acao-e-reacao) em JavaScript, Python e PHP, e os cuidados com slugs repetidos.
- URL encode: como codificar parâmetros de URL sem quebrar nadaQuando usar encodeURIComponent ou encodeURI, por que o espaço vira + ou %20 e como codificar URL em JavaScript, Python e PHP, com código testado.
Outras ferramentas que podem ajudar
- Codificar Base64Converta texto para Base64 online, com suporte a acentos (UTF-8) e opção URL-safe
- Decodificar Base64Decodifique Base64 para texto online, com suporte a UTF-8 e Base64 URL-safe
- Testador de RegexTeste expressões regulares online: destaque dos casamentos, grupos e flags
- Gerador de UUIDGere UUID v4 aleatório com um clique: em lote, em maiúsculas, com ou sem hífens
- Gerador de SenhaCrie senhas fortes e aleatórias com o tamanho e os caracteres que quiser
- Decodificador JWTDecodifique um JWT online e veja header, payload e datas de exp, iat e nbf