Codificar e decodificar URL
Esta ferramenta de codificação e decodificação de URL transforma texto Unicode comum no formato percentual da RFC 3986 e recupera texto legível de valores válidos.
Executar grátis
Escolha codificar quando o conteúdo precisar circular com segurança como componente de URL, ou decodificar para interpretar escapes em logs, redirecionamentos, consultas e links copiados. A operação é determinística, não mantém estado e rejeita sequências malformadas em vez de gerar uma saída enganosa. Você pode executá-la no navegador ou usar o mesmo comportamento pela API por US$ 0,002 por item.
Quando usar a codificação percentual
As URLs reservam caracteres para sua estrutura: barras separam segmentos, pontos de interrogação iniciam consultas, os símbolos de E comercial separam parâmetros, sinais de igual dividem nomes e valores, e cerquilhas introduzem fragmentos. Quando um desses caracteres faz parte do dado, ele não pode ser confundido com a estrutura. A codificação converte a entrada em UTF-8 e representa cada byte que não seja um caractere não reservado da RFC 3986 por um sinal de porcentagem e dois dígitos hexadecimais. Letras, números, hífens, pontos, sublinhados e tis permanecem legíveis. Espaços viram <code>%20</code>, não um sinal de adição, e a pontuação reservada é escapada porque a entrada é tratada como um valor, não como uma URL completa. Codifique apenas o componente que você vai inserir; codificar uma URL já montada também alteraria seus delimitadores estruturais.
Como a decodificação rigorosa protege os dados
A decodificação verifica toda a entrada antes de devolver um valor. Cada sinal de porcentagem deve ser seguido por exatamente dois dígitos hexadecimais; portanto, <code>%</code>, <code>%2</code> e <code>%GG</code> causam erro de entrada inválida. Depois dessa verificação, os bytes escapados precisam formar UTF-8 válido. Uma sequência pode parecer plausível e ainda representar texto corrompido; aceitar caracteres substitutos esconderia danos em logs, retornos, assinaturas ou dados importados. Por isso, a ferramenta informa o erro. Ela não transforma sinais de adição em espaços: essa convenção pertence a formulários HTML, enquanto esta capacidade segue a RFC 3986. Também executa apenas uma passagem. Assim, <code>%2520</code> vira <code>%20</code>, e não um espaço. Uma segunda passagem deve ser solicitada de modo explícito, evitando decodificação dupla acidental.
Como usar o resultado com segurança
Selecione o modo conscientemente e envie a string exata que representa um único valor lógico. Ao codificar, insira o resultado sem aplicar outro codificador, pois a codificação dupla transforma cada porcentagem em <code>%25</code>. Ao decodificar, trate o texto resultante como dado, não como marcação confiável, caminho de arquivo ou instrução. Recuperar caracteres não valida o significado deles para o próximo destino. Essa distinção importa ao receber parâmetros de retorno, examinar logs, normalizar links ou comparar identificadores. O algoritmo não utiliza rede, aleatoriedade, relógio nem estado retido; entradas iguais geram saídas iguais. O navegador é prático para depurar um valor isolado, enquanto a API permite validações reproduzíveis em testes e pipelines. Cada item custa US$ 0,002 pela API.
Casos de uso
Preparar um parâmetro de consulta
Codifique texto fornecido por usuários para manter espaços, E comerciais, Unicode e pontuação reservada em um único valor.
Examinar logs codificados
Decodifique um caminho ou parâmetro capturado para ler o conteúdo original e identificar escapes danificados.
Testar uma integração
Crie dados de teste estáveis e confirme que retornos, redirecionamentos e pipelines decodificam exatamente uma camada RFC 3986.
Perguntas frequentes
Quanto custa uma solicitação à API?
Cada item custa US$ 0,002 pela API. A execução interativa está disponível na página.
Barras e pontos de interrogação são preservados?
Não. A entrada é tratada como um valor, então a pontuação reservada também recebe codificação percentual.
Espaços são codificados como sinais de adição?
Não. A RFC 3986 representa espaço como %20; a conversão entre adição e espaço pertence aos formulários HTML.
O que acontece com um escape percentual malformado?
O modo de decodificação retorna erro para escapes incompletos, não hexadecimais ou bytes que não formem UTF-8 válido.
A ferramenta decodifica mais de uma vez?
Não. Cada solicitação faz uma única passagem para evitar dupla decodificação oculta; repita somente quando isso for intencional.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/web/url-encode-decode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello world/café?x=1","mode":"encode"}'const res = await fetch("https://api.kit.forhosting.com/web/url-encode-decode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello world/café?x=1",
"mode": "encode"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/url-encode-decode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello world/café?x=1",
"mode": "encode"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/url-encode-decode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello world/café?x=1","mode":"encode"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello world/café?x=1","mode":"encode"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/url-encode-decode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "hello world/café?x=1",
"mode": "encode"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.url_encode_decode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |