Codificador/Decodificador de URL | CoderTools
Descripción
Acerca de la codificación de URL
La codificación de URL, también conocida como codificación por porcentajes, es un mecanismo para codificar información en un Identificador de Recurso Uniforme (URI) bajo ciertas circunstancias. Consiste en sustituir ciertos caracteres por uno o más tripletes de caracteres que consisten en el carácter de porcentaje '%' seguido de dos dígitos hexadecimales.
La codificación de URL es necesaria cuando una URL contiene caracteres que no están permitidos en URLs, o cuando los caracteres tienen un significado especial en la sintaxis de URL. Esto asegura que las URLs puedan ser transmitidas de forma segura por internet sin importar los caracteres que contengan.
Nota: Diferentes partes de una URL (esquema, autoridad, ruta, consulta, fragmento) tienen diferentes reglas de codificación. Esta herramienta usa codificación URL estándar adecuada para parámetros de consulta y datos de formulario.
Caracteres comunes y sus codificaciones
| Carácter | Codificado URL | Descripción |
|---|---|---|
| Space | %20 | Carácter de espacio |
| ! | %21 | Signo de exclamación |
| " | %22 | Comillas |
| # | %23 | Almohadilla/Identificador de fragmento |
| % | %25 | Carácter de porcentaje |
| & | %26 | Ampersand/Separador de consulta |
| + | %2B | Signo más |
| = | %3D | Signo igual/Separador de valor de consulta |
| ? | %3F | Signo de interrogación/Indicador de consulta |
Casos de uso comunes
- Codificación de parámetros de consulta en formularios web
- Manejo de caracteres especiales en solicitudes de API
- Procesamiento de nombres de archivo con caracteres especiales en URLs
- Codificación de direcciones de email y otros datos en URLs
- Depuración de aplicaciones web y llamadas a API
Ejemplos
Ejemplo 1: Parámetro de consulta
Original: Hello World!
Encoded: Hello%20World%21
Ejemplo 2: Dirección de email
Original: [email protected]
Encoded: user%40example.com
Ejemplo 3: Consulta compleja
Original: search=JavaScript & Node.js
Encoded: search%3DJavaScript%20%26%20Node.js
Referencias y lecturas adicionales
- RFC 3986 - Identificador de Recurso Uniforme (URI): Sintaxis Genérica
- Wikipedia: Codificación por porcentajes
- MDN: encodeURIComponent()
Mejores prácticas
Usar encodeURIComponent() para Parámetros de Consulta
En JavaScript, use encodeURIComponent() para valores individuales de parámetros de consulta. Codifica todos los caracteres especiales incluyendo &, = y ?. No use encodeURI() para esto.
No Doble-Codificar
Codificar URLs ya codificadas crea enlaces rotos (ej: %25 en lugar de %). Verifique si los datos ya están codificados antes de aplicar codificación nuevamente.
Codificar Solo Cuando Sea Necesario
Los caracteres alfanuméricos (A-Z, a-z, 0-9) y -_.~ no necesitan codificación. Codificar todo desperdicia ancho de banda y reduce la legibilidad de las URLs.
Usar Funciones de Biblioteca Estándar
No implemente la codificación URL manualmente. Use funciones integradas: encodeURIComponent() (JS), urllib.parse.quote() (Python), urlencode() (PHP).
Manejar los Signos Más con Cuidado
El espacio puede codificarse como + (codificación de formulario) o %20 (codificación URL). Sepa cuál espera su sistema. La mayoría de las APIs prefieren %20 para espacios.
Codificar en el Origen
Codifique los datos al construir URLs, no después. Construir una cadena URL y luego codificar todo rompe la estructura de la URL.
Solución de problemas
¿Por qué mi URL decodificada todavía tiene secuencias %XX?
La URL puede estar doble-codificada. Intente decodificar nuevamente. Esto ocurre cuando URLs ya codificadas se codifican una segunda vez.
¿Por qué mi signo + se convierte en espacio?
En datos de formulario (application/x-www-form-urlencoded), + representa espacio. En URLs, + debe codificarse como %2B si desea un signo más literal.
¿Por qué mi servidor recibe caracteres corruptos?
Desajuste de codificación. Asegúrese de que tanto el cliente como el servidor esperen valores codificados en UTF-8. Los caracteres no-ASCII deben codificarse en UTF-8 antes de la codificación por porcentaje.
¿Por qué encodeURI() no codifica mis parámetros de consulta?
encodeURI() es para URIs completas y preserva caracteres especiales como &, =, ?. Use encodeURIComponent() para valores de parámetros individuales.
Herramientas Relacionadas
Codificador/Decodificador Base64
Codifique y decodifique rápidamente cadenas Base64, compatible con conversión de texto y archivos
Codificador/Decodificador HTML
Convertir caracteres especiales a entidades HTML con formatos nombrados, decimales y hexadecimales para prevenir ataques XSS
Herramienta de Escape/Unescape
Escapar y desescapar cadenas entre múltiples formatos incluyendo JavaScript, JSON, HTML, XML, CSV, SQL y más