Codifica y decodifica caracteres especiales en URLs al instante
También podrías necesitar
El percent-encoding (también llamado URL encoding) es el mecanismo estándar definido en RFC 3986 para representar caracteres no seguros en URLs como secuencias de bytes hexadecimales precedidas por %. Caracteres como espacios, acentos, emojis, ñ o símbolos especiales deben codificarse para que los servidores web los interpreten correctamente. JavaScript expone encodeURIComponent() para codificar todo excepto los caracteres no reservados (A–Z a–z 0–9 - _ . ! ~ * ' ( )), y decodeURIComponent() para revertir el proceso. Esta herramienta procesa el texto completo en tu navegador en tiempo real — ningún dato sale de tu dispositivo.
¿Cuál es la diferencia entre encodeURIComponent y encodeURI?
encodeURIComponent codifica todos los caracteres excepto A–Z a–z 0–9 - _ . ! ~ * ' ( ). Es el indicado para valores individuales dentro de una query string. encodeURI, en cambio, preserva los delimitadores de la URL (/, :, ?, #, &, =) y está pensado para codificar una URL completa sin romper su estructura.
¿Por qué un espacio se convierte en %20 y no en +?
El estándar RFC 3986 especifica %20 para los espacios en URLs. El símbolo + como sustituto del espacio es una convención de application/x-www-form-urlencoded (formularios HTML), no de URLs generales. Algunos servidores aceptan ambos, pero %20 es el valor correcto según el estándar.
¿Qué es el percent-encoding y cómo funciona?
Percent-encoding representa cada byte del carácter como %XX, donde XX son los dos dígitos hexadecimales del valor del byte. Para caracteres UTF-8 multibyte (como ñ o emojis), se generan múltiples secuencias %XX consecutivas. Por ejemplo, 'ñ' en UTF-8 son los bytes 0xC3 0xB1, que se codifican como %C3%B1.
¿Cuándo debo usar URL encoding?
Siempre que construyas URLs dinámicamente con datos del usuario: parámetros de búsqueda, tokens, nombres de archivo, valores de formulario enviados como query string, redirecciones con URLs embebidas, o cualquier dato que pueda contener caracteres fuera del conjunto ASCII básico seguro.
¿Por qué aparece un error al decodificar?
El error ocurre cuando la cadena contiene secuencias de percent-encoding malformadas: un % que no está seguido de exactamente dos dígitos hexadecimales válidos (0–9, A–F). Ejemplos inválidos: %GG, %2, % solo. También puede ocurrir si el texto fue cortado en medio de una secuencia multibyte UTF-8.