Codificador / Descodificador de URL
NovoCodifique ou descodifique texto em percentagem e analise query strings, tudo no seu 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 descodificador de URL gratuito online
Este codificador e descodificador de URL converte texto para formato codificado em percentagem — ou inverte o processo — diretamente no seu navegador. Cole o seu texto, escolha Codificar ou Descodificar, selecione as regras Componente ou URI Completo, e o resultado atualiza em tempo real. Nada é enviado; cada operação é executada inteiramente no seu navegador usando as mesmas funções JavaScript integradas que o seu código utiliza.
A codificação percentual é inevitável no desenvolvimento web. Espaços, ampersands, sinais de igual e caracteres não ASCII têm de ser escapados antes de poderem existir de forma segura num URL. Quer esteja a construir um pedido de API, a depurar uma ligação de rastreio ou a ler um registo de servidor, esta ferramenta lida com todos os casos especiais — incluindo caracteres UTF-8 multi-byte, sequências malformadas e a ambiguidade do espaço + vs %20.
encodeURIComponent vs encodeURI — qual regra utilizar?
encodeURIComponent é a escolha correta para valores de consulta individuais, segmentos de caminho ou qualquer string que esteja a inserir num URL. Codifica quase todos os caracteres especiais — incluindo ?, &, =, /, # e : — para que o valor não possa quebrar a estrutura do URL. Exemplo: 'hello world & page=2' torna-se 'hello%20world%20%26%20page%3D2'.
encodeURI é projetado para codificar um URL completo sem o quebrar. Deixa os caracteres estruturais intactos (: / ? # &) para que o URL continue a funcionar enquanto ainda codifica espaços e caracteres não ASCII. Em caso de dúvida, prefira as regras de Componente para qualquer valor que esteja a inserir — esse é o padrão seguro em quase todos os frameworks 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 num URL. Nos caminhos de URL (a parte antes do ?), o RFC 3986 requer %20. Nas strings de consulta 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 submete um formulário via GET.
Ambos significam 'espaço', mas apenas no seu próprio contexto. Um + num caminho de URL é um sinal de mais literal; um + numa string de consulta é um espaço. Um sinal de mais literal num valor de consulta tem de ser codificado como %2B ou será mal interpretado. O botão + como espaço do modo de descodificação trata a entrada codificada em formulário substituindo + por espaço antes de executar decodeURIComponent.
Como se compara com CyberChef e outras ferramentas de codificação de URL
CyberChef (da GCHQ) é poderoso mas foi concebido em torno de um conceito de pipeline de 'receitas' — encadeia múltiplas operações. Para codificação ou descodificação pura de URL, ainda tem de 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/descodificaçã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 fragmentos de código por linguagem. Esta 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 a 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 strings de consulta), & → %26, = → %3D, ? → %3F, # → %23, / → %2F, : → %3A, @ → %40, + → %2B, % → %25. Caracteres UTF-8 multi-byte expandem-se 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 carácter não ASCII — deve ser codificado em percentagem num URL conforme às normas.
Codificação de URL em JavaScript, Python, C#, PowerShell e Java
Cada linguagem principal tem uma função integrada para isto. Em JavaScript / Node.js: encodeURIComponent(str) e decodeURIComponent(str) — sem importações necessárias. Em Python: urllib.parse.quote(str) e unquote(str); urlencode(dict) para uma string de consulta 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 fragmentos por linguagem inclui código pronto a copiar em JavaScript, Python, C#, PowerShell, Java e Go para que possa adicionar a chamada correta 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 descodificação utiliza apenas as funções integradas do seu navegador: encodeURIComponent, decodeURIComponent, encodeURI e decodeURI. Nenhum texto é alguma vez enviado para um servidor, armazenado ou registado — nem mesmo os nomes de domínio nos URLs que cola. Assim que a página estiver carregada, coloque o dispositivo offline e continua a funcionar perfeitamente. Guarde nos favoritos e use-a sempre que precisar de codificar, descodificar ou inspecionar um URL.
Frequently asked questions
O que é a codificação de URL?
A codificação de URL (também chamada codificação percentual) converte os caracteres que não são seguros num URL num sinal % seguido de dois dígitos hexadecimais. Por exemplo, um espaço torna-se %20, um ampersand torna-se %26 e um cardinal torna-se %23. Garante que cada URL é válido em qualquer navegador, cabeçalho HTTP ou servidor independentemente do conjunto de caracteres.
O que significa %20 na codificação de URL?
%20 é a representação codificada em percentagem de um carácter espaço. O 20 é o valor hexadecimal de ASCII 32 (o espaço). Assim, o URL 'hello%20world' descodifica de volta para 'hello world'. Nas strings de consulta de formulários HTML verá por vezes + em vez de %20 para espaços — ambos significam o mesmo em strings de consulta 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 do URL. encodeURI é para um URL completo — deixa os caracteres estruturais como : / ? & # intactos para que o URL continue a funcionar. Como regra, use sempre encodeURIComponent para valores individuais que está a inserir numa ligação.
Como codifico um URL em JavaScript?
Use encodeURIComponent() para valores individuais: encodeURIComponent('hello world & co.') devolve 'hello%20world%20%26%20co.'. Para reverter use decodeURIComponent(). Para um URL completo use encodeURI() / decodeURI() — ignoram os caracteres estruturais. Ambas estão integradas em cada navegador e Node.js sem necessidade de importações.
É seguro codificar e descodificar online?
Sim — esta ferramenta é 100% local. Cada operação é executada no seu navegador usando funções JavaScript integradas. O seu texto nunca é enviado para nenhum servidor, não é armazenado nem registado. Pode até ficar offline depois de carregar a página e continua a funcionar. Isto é especialmente importante ao codificar chaves de API, credenciais ou tokens.
Porque é que um espaço é %20 às vezes e + outras vezes?
Em caminhos de URL (antes do ?), os espaços devem ser %20 segundo o RFC 3986. Nas strings de consulta, o antigo formato application/x-www-form-urlencoded usado pelos formulários HTML codifica espaços como + por brevidade histórica. Ambos significam 'espaço' mas apenas no seu próprio contexto — um + literal num valor de consulta deve ser codificado como %2B ou será interpretado incorretamente como espaço.
Que caracteres precisam sempre de ser codificados num URL?
Qualquer carácter fora do conjunto não reservado (A–Z, a–z, 0–9, hífen, sublinhado, ponto, til) deve ser codificado em percentagem. Os mais comuns: espaço → %20, & → %26, = → %3D, ? → %3F, # → %23, / → %2F, : → %3A, @ → %40, + → %2B, % → %25. Caracteres não ASCII como acentos e emojis codificam-se como múltiplas sequências %XX via UTF-8.
Related tools
Ver todas as ferramentasConstrutor de expressões Cron
Explique um agendamento Cron em linguagem comum e pré-visualize as próximas execuções.
Minificador de HTML
Comprima HTML removendo comentários e reduzindo os espaços em branco.
Minificador de CSS
Reduza o CSS removendo comentários e espaços em branco desnecessários.
Escape / Unescape de JSON
Faça o escape de texto bruto para uma string segura em JSON e reverta o processo.
Códigos de estado HTTP
Referência pesquisável de códigos de estado HTTP com significados em linguagem comum.
Folha de consulta de regex
Referência pesquisável de tokens e flags de expressões regulares.