Codificador/Decodificador de URL
Codifica texto para usarlo en URL y cadenas de consulta, o decodifica URL codificadas en porcentaje para devolverlas a texto legible — con soporte completo de Unicode, todo en tu navegador.
Salida
Cómo usarlo
Elige Codificar o Decodificar y pega tu texto o URL. Por defecto, codifica un valor único (escapando caracteres como & = ? /). Activa 'URI completa' para mantener intacta la estructura de una URL y escapar solo caracteres no seguros. Haz clic en copiar para tomar el resultado. La codificación de URL, también llamada codificación de porcentaje, es la forma estándar de hacer que el texto sea seguro para colocarlo dentro de una URL o una cadena de consulta. Cualquier carácter fuera de un pequeño conjunto de caracteres ASCII reservados y no reservados se reemplaza con un signo de porcentaje seguido de dos dígitos hexadecimales que representan el valor de byte de ese carácter — un espacio se convierte en %20, un ampersand en %26, y así sucesivamente. Las URL solo permiten un conjunto limitado de caracteres ASCII: letras, dígitos y algunos signos de puntuación como - _ . ~. Todo lo demás, incluyendo espacios, comillas y letras que no son inglesas, debe escaparse antes de que pueda viajar de forma segura dentro de una URL. Sin codificación, un navegador o servidor puede malinterpretar dónde termina una parte de una URL y comienza otra — un & sin escapar dentro de un valor se parece al inicio de un nuevo parámetro de consulta, un ? sin escapar se parece al inicio de la cadena de consulta en sí, y un # sin escapar se trata como un identificador de fragmento, cortando silenciosamente todo lo que viene después. Toma la frase "café & bar" como valor de consulta de ejemplo. Los caracteres de espacio se convierten en %20, el ampersand en %26, y la é acentuada — que ocupa dos bytes en UTF-8 — se convierte en %C3%A9. Codificada en porcentaje, la frase se convierte en caf%C3%A9%20%26%20bar. Decodificar revierte el proceso: cada par %XX se lee como un byte UTF-8 y se reensambla en el carácter original, por lo que decodificar esa cadena devuelve café & bar exactamente como comenzó. Codificar una URL completa y codificar un valor de cadena de consulta único son trabajos diferentes. La codificación de URI completa escapa caracteres no seguros pero deliberadamente deja los caracteres estructurales de una URL — / : ? & = # — intactos, ya que eliminarlos rompería la propia sintaxis de la URL. La codificación de componentes (la predeterminada aquí) escapa también esos mismos caracteres, porque un valor que se inserta en una cadena de consulta nunca debe permitir introducir un & o = extraviado que un servidor confundiría con un nuevo parámetro. La codificación de porcentaje aparece constantemente en el trabajo web diario: crear un parámetro de consulta a partir de entrada de usuario, compartir un enlace que incluye un término de búsqueda o filtro, ensamblar URLs de solicitud de API, enviar datos de formulario sobre GET, y construir parámetros UTM para enlaces de marketing. También es la solución para el clásico error "malformed URI" lanzado por decodeURIComponent — ese error significa que la cadena que se decodifica contiene un % que no está seguido de dos dígitos hexadecimales válidos, generalmente porque se codificó incorrectamente o se codificó dos veces.
Preguntas frecuentes
- ¿Cuál es la diferencia entre codificar un componente y una URI completa?
- La codificación de componentes (predeterminada) escapa caracteres reservados como & = ? /, por lo que es correcta para un valor de consulta único. La codificación de URI completa deja esos caracteres en su lugar, por lo que es correcta para una URL completa.
- ¿Maneja caracteres que no son ingleses?
- Sí. El texto se codifica en porcentaje como UTF-8, por lo que los acentos, emoji y caracteres CJK se codifican y decodifican correctamente.
- ¿Qué pasa si pego texto codificado inválido?
- Si un escape de porcentaje tiene un formato incorrecto (como un % solitario), la decodificación muestra un error en lugar de producir basura.
- ¿Por qué a veces un espacio se convierte en %20 y otras veces en +?
- Ambos representan un espacio, pero en contextos diferentes. La codificación de porcentaje (RFC 3986) siempre usa %20, que es lo que esta herramienta produce. El carácter + es una convención heredada del formato application/x-www-form-urlencoded más antiguo usado por envíos de formularios HTML, donde + significa espacio y un signo más literal debe ser codificado en sí como %2B.