Codificador / Decodificador de URL
NovoCodifique ou decodifique texto com percent-encoding e analise query strings, tudo no navegador.
Special characters reference
| Character | Encoded (%XX) | Notes |
|---|---|---|
| space | %20 | Also encoded as + in HTML form query strings |
| & | %26 | Query param separator — encode in values |
| = | %3D | Key-value separator in query strings |
| ? | %3F | Marks the start of a query string |
| # | %23 | Fragment identifier |
| / | %2F | Path separator |
| : | %3A | Protocol / port separator |
| @ | %40 | Username delimiter in URLs |
| + | %2B | Literal plus sign (+ in query string = space) |
| % | %25 | Percent itself — encode to avoid ambiguity |
| € | %E2%82%AC | UTF-8 multi-byte (3 bytes) |
| © | %C2%A9 | UTF-8 multi-byte (2 bytes) |
Per-language code snippets
Copy-ready snippets for JavaScript, Python, C#, PowerShell, Java and Go.
// Encode a single query value (recommended)
const encoded = encodeURIComponent('hello world & co.');
// → 'hello%20world%20%26%20co.'
// Decode
const decoded = decodeURIComponent('hello%20world%20%26%20co.');
// → 'hello world & co.'
// Encode a full URL (leaves : / ? & # intact)
const safeUrl = encodeURI('https://example.com/search?q=hello world');
// → 'https://example.com/search?q=hello%20world' from urllib.parse import quote, unquote, urlencode
# Encode a single value (%20 for spaces)
encoded = quote('hello world & co.')
# → 'hello%20world%20%26%20co.'
# Decode
decoded = unquote('hello%20world%20%26%20co.')
# → 'hello world & co.'
# Encode a query dict (uses + for spaces — form encoding)
qs = urlencode({'q': 'hello world', 'page': '2'})
# → 'q=hello+world&page=2'
# quote_plus encodes spaces as + (match HTML form encoding)
plus = quote_plus('hello world')
# → 'hello+world' // Encode a single value (spaces → %20)
string encoded = Uri.EscapeDataString("hello world & co.");
// → "hello%20world%20%26%20co."
// Decode
string decoded = Uri.UnescapeDataString("hello%20world%20%26%20co.");
// → "hello world & co."
// Older System.Web API (spaces → +, form encoding):
// HttpUtility.UrlEncode("hello world") → "hello+world" # .NET method — works in PS 5+ and PowerShell Core
$encoded = [Uri]::EscapeDataString('hello world & co.')
# → 'hello%20world%20%26%20co.'
$decoded = [Uri]::UnescapeDataString('hello%20world%20%26%20co.')
# → 'hello world & co.'
# Alternate via System.Web (Desktop PS only):
Add-Type -AssemblyName System.Web
$enc2 = [System.Web.HttpUtility]::UrlEncode('hello world')
# → 'hello+world' import java.net.URLEncoder;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
// Encode (URLEncoder uses + for spaces — form encoding)
String encoded = URLEncoder.encode("hello world & co.", StandardCharsets.UTF_8);
// → "hello+world+%26+co."
// Decode
String decoded = URLDecoder.decode("hello+world+%26+co.", StandardCharsets.UTF_8);
// → "hello world & co." import "net/url"
// QueryEscape: spaces become +
encoded := url.QueryEscape("hello world & co.")
// → "hello+world+%26+co."
decoded, err := url.QueryUnescape("hello+world+%26+co.")
// → "hello world & co.", nil
// PathEscape: spaces become %20
pathSafe := url.PathEscape("hello world & co.")
// → "hello%20world%20&%20co." Runs entirely in your browser. Nothing is uploaded.
Codificador e decodificador de URL gratuito online
Este codificador e decodificador de URL converte texto para o formato percent-encoded — ou reverte o processo — diretamente no seu navegador. Cole seu texto, escolha Codificar ou Decodificar, selecione as regras Componente ou URI Completo, e o resultado é atualizado em tempo real. Nada é enviado; cada operação roda inteiramente no seu navegador usando as mesmas funções JavaScript embutidas que seu código utiliza.
A codificação percentual é inevitável no desenvolvimento web. Espaços, e-comerciais, sinais de igual e caracteres não ASCII precisam ser escapados antes de poder existir com segurança em uma URL. Seja construindo uma requisição de API, depurando um link de rastreamento ou lendo um log de servidor, essa ferramenta lida com todos os casos especiais — incluindo caracteres UTF-8 multibyte, sequências malformadas e a ambiguidade do espaço + vs %20.
encodeURIComponent vs encodeURI — qual regra usar?
encodeURIComponent é a escolha certa para valores de consulta individuais, segmentos de caminho ou qualquer string que você está inserindo em uma URL. Ele codifica quase todos os caracteres especiais — incluindo ?, &, =, /, # e : — para que o valor não possa quebrar a estrutura da URL. Exemplo: 'hello world & page=2' vira 'hello%20world%20%26%20page%3D2'.
encodeURI é projetado para codificar uma URL completa sem quebrá-la. Ele mantém os caracteres estruturais intactos (: / ? # &) para que a URL continue funcionando enquanto ainda codifica espaços e caracteres não ASCII. Na dúvida, prefira as regras de Componente para qualquer valor que você está inserindo — esse é o padrão seguro em quase todo framework web.
Espaços como %20 vs + — a distinção da codificação de formulários
Existem duas formas válidas de codificar um espaço em uma URL. Em caminhos de URL (a parte antes do ?), o RFC 3986 exige %20. Em query strings de formulários HTML, o antigo formato application/x-www-form-urlencoded codifica espaços como + por compacidade histórica — e é isso que os navegadores ainda enviam quando você submete um formulário via GET.
Ambos significam 'espaço', mas apenas no seu próprio contexto. Um + em um caminho de URL é um sinal de mais literal; um + em uma query string é um espaço. Um sinal de mais literal em um valor de consulta precisa ser codificado como %2B ou será mal interpretado. O botão + como espaço no modo de decodificação trata a entrada codificada em formulário substituindo + por espaço antes de executar o decodeURIComponent.
Como se compara ao CyberChef e outras ferramentas de codificação de URL
CyberChef (do GCHQ) é poderoso, mas foi projetado em torno de um conceito de pipeline de 'receitas' — você encadeia múltiplas operações. Para codificação ou decodificação pura de URL, ainda precisa procurar a operação, arrastá-la para a receita e depois processar a entrada. É excelente para transformações complexas; é mais lento do que o necessário para uma codificação/decodificação rápida.
Outras ferramentas online como urldecoder.org são simples mas mostram anúncios, requerem recarregamentos completos de página em cada operação e não oferecem trechos de código por linguagem. Essa ferramenta atualiza o resultado instantaneamente a cada tecla pressionada, lida com regras de Componente e URI Completo, inclui uma tabela de referência de caracteres codificados comuns e mostra código pronto para copiar em JavaScript, Python, C#, PowerShell, Java e Go.
Referência rápida de caracteres especiais
Os caracteres mais comumente codificados no desenvolvimento web: espaço → %20 (ou + em query strings), & → %26, = → %3D, ? → %3F, # → %23, / → %2F, : → %3A, @ → %40, + → %2B, % → %25. Caracteres UTF-8 multibyte expandem em múltiplas sequências: € → %E2%82%AC, é → %C3%A9.
Os caracteres que nunca são codificados são o conjunto não reservado: letras A–Z e a–z, dígitos 0–9 e os quatro símbolos - _ . ~. Todo o resto — incluindo cada caractere não ASCII — deve ser codificado em porcentagem em uma URL conforme aos padrões.
Codificação de URL em JavaScript, Python, C#, PowerShell e Java
Toda linguagem principal tem uma função embutida para isso. Em JavaScript / Node.js: encodeURIComponent(str) e decodeURIComponent(str) — sem imports necessários. Em Python: urllib.parse.quote(str) e unquote(str); urlencode(dict) para uma query string completa. Em C#: Uri.EscapeDataString(str) e Uri.UnescapeDataString(str) do namespace System. Em PowerShell: [Uri]::EscapeDataString(str), disponível no PS 5+ e PowerShell Core. Em Java: URLEncoder.encode(str, StandardCharsets.UTF_8).
O painel de trechos por linguagem inclui código pronto para copiar em JavaScript, Python, C#, PowerShell, Java e Go para você adicionar a chamada certa ao seu projeto imediatamente — com notas sobre o comportamento do espaço + vs %20 para a biblioteca padrão de cada linguagem.
100% privado — também funciona offline
Cada operação de codificação e decodificação usa apenas as funções embutidas do seu navegador: encodeURIComponent, decodeURIComponent, encodeURI e decodeURI. Nenhum texto é enviado para um servidor, armazenado ou registrado — nem mesmo os nomes de domínio nas URLs que você cola. Assim que a página carregou, coloque o dispositivo offline e ela continua funcionando perfeitamente. Salve nos favoritos e use sempre que precisar codificar, decodificar ou inspecionar uma URL.
Frequently asked questions
O que é codificação de URL?
Codificação de URL (também chamada de percent-encoding ou codificação percentual) converte caracteres que não são seguros em uma URL em um sinal % seguido de dois dígitos hexadecimais. Por exemplo, espaço vira %20, e comercial vira %26 e cerquilha vira %23. Isso garante que toda URL seja válida em qualquer navegador, cabeçalho HTTP ou servidor, independente do conjunto de caracteres.
O que significa %20 na codificação de URL?
%20 é a representação codificada em porcentagem de um caractere espaço. O 20 é o valor hexadecimal do ASCII 32 (o espaço). Então a URL 'hello%20world' decodifica de volta para 'hello world'. Em query strings de formulários HTML você às vezes vai ver + em vez de %20 para espaços — os dois significam a mesma coisa em query strings, mas não em caminhos de URL.
Qual a diferença entre encodeURI e encodeURIComponent?
encodeURIComponent é para valores de consulta individuais ou segmentos de caminho — codifica quase tudo incluindo : / ? # & = para que o valor não possa quebrar a estrutura da URL. encodeURI é para uma URL completa — mantém os caracteres estruturais como : / ? & # intactos para que a URL continue funcionando. Como regra, sempre use encodeURIComponent para valores individuais que você está inserindo em um link.
Como faço para codificar uma URL em Python?
Use urllib.parse.quote() para um único valor: from urllib.parse import quote; quote('hello world & co.') retorna 'hello%20world%20%26%20co.'. Para decodificar: unquote('hello%20world%20%26%20co.'). Para um dicionário de query string completo: urlencode({'q': 'hello world', 'page': '2'}) retorna 'q=hello+world&page=2'. O quote_plus() usa + para espaços para corresponder à codificação de formulários HTML.
Por que espaço é %20 às vezes e + outras vezes?
Em caminhos de URL (antes do ?), espaços devem ser %20 conforme o RFC 3986. Em query strings, o antigo formato application/x-www-form-urlencoded usado por formulários HTML codifica espaços como + por brevidade histórica. Os dois significam 'espaço' mas apenas no seu próprio contexto — um + literal em um valor de consulta precisa ser codificado como %2B ou será mal interpretado como espaço.
É seguro codificar e decodificar online?
Sim — essa ferramenta é 100% local. Cada operação roda no seu navegador usando funções JavaScript embutidas. Seu texto nunca é enviado para nenhum servidor, não é armazenado nem registrado. Você pode até ficar offline depois de carregar a página e ela continua funcionando. Isso é especialmente importante ao codificar chaves de API, credenciais ou tokens.
A ferramenta funciona sem internet?
Sim. Toda a lógica roda no seu navegador sem nenhuma requisição de rede. Depois que a página carregou, você pode desativar o Wi-Fi ou dados móveis e ela continua funcionando perfeitamente — útil para codificar chaves de API ou credenciais sensíveis sem que nenhum texto saia do seu dispositivo.
Related tools
Ver todas as ferramentasConstrutor de expressões Cron
Explique um agendamento Cron em linguagem simples e veja os próximos horários de execução.
Minificador de HTML
Comprima HTML removendo comentários e reduzindo espaços em branco.
Minificador de CSS
Reduza o CSS removendo comentários e espaços em branco desnecessários.
JSON Escape / Unescape
Transforme texto bruto em uma string segura para JSON e reverta-a.
Códigos de status HTTP
Referência pesquisável de códigos de status HTTP com significados em linguagem simples.
Folha de consulta de Regex
Referência pesquisável de tokens e flags de expressões regulares.