Codificação e Decodificação de URL

Codifique e decodifique strings de URL, tratando com segurança caracteres especiais e texto não ASCII, ideal para parâmetros de consulta e transmissão de caminhos.

Codificar

Modo de codificação

Decodificar

Instruções de Uso

A codificação de URL converte caracteres especiais ou não ASCII em formato %XX para transmissão segura em URLs.
Use "Codificar" para transformar o texto em um formato seguro para URLs (por exemplo, parâmetros de consulta).
Use "Decodificar" para restaurar sequências %XX aos seus caracteres originais.
Cenários comuns: processamento de parâmetros de consulta, transmissão de dados de formulário, chamadas de API, etc.

Exemplos Rápidos

Texto original
https://example.com/search?q=你好世界&type=text
Codificação URL
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C&type=text

Recursos

  • Dois modos de codificação: encodeURIComponent e encodeURI
  • Manipulação flexível de espaços: codificados como + ou %20
  • Conversão em tempo real com estatísticas de comprimento de entrada/saída
  • Botões de cópia e limpeza, com envio bidirecional para o painel oposto
  • Suporte completo à internacionalização e temas múltiplos do DaisyUI

O que é Codificação de URL

A codificação URL converte caracteres em sequências de código percentual %XX para transmissão segura em URLs.

encodeURIComponent é adequado para componentes individuais (como valores únicos de parâmetros de consulta) e codifica a maioria dos caracteres não alfanuméricos.

encodeURI é adequado para strings URI completas e não codifica caracteres reservados com significado estrutural, como ?, &, =, / .

Casos de Uso Comuns

  • Construção de parâmetros de consulta (palavras-chave de busca, critérios de filtragem, etc.)
  • Codificação e transmissão de dados de formulários GET/POST
  • Codificação de parâmetros de requisições API
  • Inserir com segurança entradas do usuário em segmentos de caminho de URL

Perguntas Frequentes e Armadilhas

  • encodeURI vs encodeURIComponent: use component para parâmetros individuais e URI para links completos
  • Espaço e +: application/x-www-form-urlencoded usa frequentemente + para representar espaços em strings de consulta
  • Evite decodificação duplicada: múltiplas decodificações podem corromper os dados
  • Sequências de porcentagem inválidas geram erros; é necessário tratar exceções de forma elegante

Como realizar codificação e decodificação de URL em linguagens de programação

JavaScript
Codificar
// Component (recommended for query values)
const encoded = encodeURIComponent(text);
// If you need '+' for spaces in query strings
const encodedPlus = encoded.replace(/%20/g, '+');
// Full URI
const encodedUri = encodeURI(url);
Decodificar
// Treat '+' as space if needed
const input = plusAsSpace ? s.replace(/\+/g, ' ') : s;
// Component
const dec1 = decodeURIComponent(input);
// Fallback to decodeURI when input is a full URL
const dec2 = decodeURI(input);
PHP
Codificar
// Component (RFC 3986)
$encoded = rawurlencode($text);
// '+' for spaces (application/x-www-form-urlencoded)
$encodedPlus = str_replace('%20', '+', $encoded);
// Full query usage
$query = http_build_query(['q' => '你好 世界', 'type' => 'text']);
Decodificar
// Component
$decoded = rawurldecode($s);
// If input uses '+' for spaces
$decodedPlus = urldecode($s);
Python
Codificar
from urllib.parse import quote, quote_plus

# Component (RFC 3986)
enc = quote(text, safe='')
# '+' for spaces (application/x-www-form-urlencoded)
enc_plus = quote_plus(text)
Decodificar
from urllib.parse import unquote, unquote_plus

# Component
dec = unquote(s)
# Input with '+' for spaces
dec_plus = unquote_plus(s)
Go
Codificar
import (
    "net/url"
)

// Query component
enc := url.QueryEscape(text) // spaces => +
// Path segment
// go1.8+
// url.PathEscape(text)
Decodificar
import (
    "net/url"
)

// Query component
dec, _ := url.QueryUnescape(s)
// Path segment
// url.PathUnescape(s)
Rust
Codificar
// Cargo.toml: urlencoding = "^2"
use urlencoding::{encode, encode_binary};

let enc = encode(text);              // component; spaces => %20
let enc_plus = enc.replace("%20", "+"); // if you need '+' for spaces
Decodificar
use urlencoding::decode;

// decode treats '+' as space
let dec = decode(s)?; // Result, _>
Java
Codificar
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

// Query param / form style (spaces => '+')
String enc = URLEncoder.encode(text, StandardCharsets.UTF_8);
// For RFC3986-like component encoding, replace '+' with %20 if needed
String encSpace = enc.replace("+", "%20");
Decodificar
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

// URLDecoder treats '+' as space
String dec = URLDecoder.decode(s, StandardCharsets.UTF_8);