Cómo funciona
Esta herramienta convierte los caracteres especiales a su equivalente con codificación porcentual para poder usarlos sin problemas en una URL, y también devuelve una URL codificada a su forma legible.
Una URL solo admite un conjunto limitado de caracteres: letras, dígitos y unos pocos símbolos (-._~). Todos los demás (espacios, caracteres no ASCII y los caracteres reservados como &, =, ?, # y / cuando aparecen dentro del valor de un parámetro) tienen que codificarse como %XX, donde XX es el valor hexadecimal del byte. Un espacio se convierte en %20, un ampersand en %26 y un carácter chino como 中 en sus bytes UTF-8, %E4%B8%AD.
Cómo se usa: pega una URL o una parte de ella y pulsa Codificar para obtener la versión con codificación porcentual, o pega una URL codificada y pulsa Descodificar para verla legible. Puedes elegir entre codificar la URL entera (que deja intactos los caracteres estructurales como /, ? y &) o codificar el valor de un parámetro (que codifica todos los reservados, incluidos / y &).
encodeURIComponent frente a encodeURI: la herramienta reproduce las dos funciones de codificación de JavaScript. encodeURI codifica una URL completa conservando los caracteres estructurales. encodeURIComponent codifica un valor que va a ir dentro de un parámetro y codifica todo salvo letras, dígitos y -_.~. Para el valor de un parámetro concreto, usa siempre encodeURIComponent.
Caso habitual: construir un parámetro de consulta que contiene otra URL u otros caracteres especiales. Si pasas redirect_url=https://ejemplo.com/ruta?clave=valor como parámetro, la URL interna tiene que ir completamente codificada: redirect_url=https%3A%2F%2Fejemplo.com%2Fruta%3Fclave%3Dvalor.
Preguntas frecuentes
- Codifica los valores de los parámetros por separado cuando montas una cadena de consulta: eso equivale a encodeURIComponent, que codifica también / y ?. Codifica la URL completa solo cuando vayas a guardarla o transmitirla como un valor de texto: eso equivale a encodeURI, que conserva /, ? y & como caracteres estructurales.
- %20 es la codificación porcentual estándar del espacio. El signo + es una codificación alternativa que solo se usa en el formato application/x-www-form-urlencoded (el envío de formularios HTML). En rutas y cadenas de consulta, usa %20 para máxima compatibilidad.
- Primero se convierten a su secuencia de bytes UTF-8 y después se codifica cada byte con el formato porcentual. El carácter chino 中 tiene los bytes UTF-8 E4 B8 AD, así que se codifica como %E4%B8%AD.
- El descodificador trabaja de nivel en nivel. Si una URL se codificó dos veces (%2520 es un %25 codificado, que se descodifica a %20 y este a su vez a un espacio), pasa el descodificador dos veces para dejarla del todo legible.