Codificación y decodificación de URL
Codifica y decodifica cadenas de URL para manejar de forma segura caracteres especiales y texto no ASCII, ideal para parámetros de consulta y transmisión de rutas.
Cómo usar
La codificación de URL convierte caracteres especiales o no ASCII al formato %XX para una transmisión segura en URLs.
Usa 'Codificar' para transformar texto en un formato seguro para URL (p. ej., para parámetros de consulta).
Usa 'Decodificar' para restaurar las secuencias %XX a sus caracteres originales.
Escenarios comunes: manejo de parámetros de consulta, transmisión de datos de formularios, llamadas API, etc.
Características
- Dos modos de codificación: encodeURIComponent y encodeURI
- Gestión flexible de espacios: codificar como + o %20
- Conversión en tiempo real con estadísticas de longitud de entrada/salida
- Botones de copiar/borrar y funcionalidad bidireccional de envío al panel
- Soporte completo de internacionalización con temas múltiples de DaisyUI
¿Qué es la codificación de URL?
La codificación de URL convierte los caracteres en secuencias codificadas por porcentaje (%XX) para garantizar una transmisión segura en las URLs.
encodeURIComponent es adecuado para componentes individuales (por ejemplo, el valor de un solo parámetro de consulta) y codifica la mayoría de los caracteres no alfanuméricos.
encodeURI está diseñado para cadenas URI completas y preserva los caracteres reservados con significado estructural, como ?, &, = y /.
Casos de uso comunes
- Creación de parámetros de consulta (por ejemplo, palabras clave de búsqueda, condiciones de filtro)
- Codificación y transmisión de datos de formularios mediante GET/POST
- Codificación de parámetros de solicitud de API
- Inserción segura de entradas de usuario en segmentos de ruta de URL
Preguntas frecuentes y errores comunes
- encodeURI vs encodeURIComponent: use la codificación de componentes para partes individuales y la codificación de URI para URLs completas
- Espacios y +: en application/x-www-form-urlencoded, los espacios se representan comúnmente como + en las cadenas de consulta
- Evite la doble decodificación: la decodificación repetida puede corromper los datos
- Las secuencias de porcentaje inválidas lanzan errores; maneje las excepciones de forma adecuada
Cómo realizar la codificación/decodificación de URL en lenguajes de programación
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);