Volver al inicio Desarrollador Codificador URL

Codificador URL

Codifica y decodifica URLs

Cómo usar Codificador URL

Codifica y decodifica URLs y cadenas de consulta. Codificación porcentual. Codificador y decodificador de URL gratuito.

¿Para qué sirve la codificación de URLs?

Las URLs solo pueden contener un conjunto limitado de caracteres ASCII. Los caracteres especiales —espacios, acentos, puntuación y caracteres no ASCII— deben codificarse como secuencias de porcentaje (%XX) para transmitirse de forma segura en una URL.

Reglas de codificación: Las letras (A-Z, a-z), los dígitos (0-9) y los caracteres -_.~ nunca se codifican. Todo lo demás se codifica como % seguido de dos dígitos hexadecimales que representan los valores de byte UTF-8.

Frequently Asked Questions

¿Cuál es la diferencia entre encodeURI y encodeURIComponent en JavaScript?

encodeURI codifica una URL completa —deja sin codificar los caracteres estructurales de la URL (/, ?, &, #, :) ya que tienen significado en la URL. encodeURIComponent codifica todo excepto letras, dígitos y -_.~* —se usa para valores individuales de parámetros. Usa siempre encodeURIComponent para los valores de los parámetros de consulta.

¿Cuál es la diferencia entre + y %20 para los espacios?

Ambos representan un espacio en la codificación de URL, pero en diferentes contextos. %20 es correcto para todos los componentes de URL. El signo + representa un espacio solo en application/x-www-form-urlencoded (datos de formulario HTML) —no en segmentos de ruta. Usar + en una ruta codifica un signo más literal, no un espacio.

¿Por qué decodificar dos veces causa problemas?

Si %252F aparece en una URL, codifica %2F (que a su vez codifica /). Decodificar una vez da %2F. Decodificar dos veces da /. La doble codificación ocurre cuando un valor se codifica y luego toda la URL se codifica de nuevo. Causa problemas de seguridad (ataques de path traversal) cuando los servidores decodifican las URLs varias veces.

¿Qué caracteres deben codificarse en un segmento de ruta URL?

Los caracteres reservados con significado especial deben codificarse en los segmentos de ruta: espacio (%20), # (%23), % (%25), ? (%3F) y otros. La barra / es el separador de ruta —para incluir una barra literal en un segmento de ruta, codifícala como %2F.

¿Qué es Punycode y cómo se relaciona con la codificación de URLs?

Punycode convierte nombres de dominio internacionales (IDN) con caracteres no ASCII a codificación compatible con ASCII. 'münchen.de' se convierte en 'xn--mnchen-3ya.de' en Punycode. Es diferente de la codificación porcentual —se aplica específicamente a los nombres de dominio.

Codificación de URL vs Base64 vs entidades HTML

La codificación de URL (codificación porcentual) hace que los datos sean seguros para las URLs. La codificación Base64 hace que los datos binarios sean seguros para contextos de texto (correo, JSON). Las entidades HTML hacen que los caracteres especiales sean seguros para HTML: & se convierte en &amp;, < en &lt;. Cada una resuelve el mismo problema —representar datos en un conjunto de caracteres restringido— pero para diferentes contextos de destino.

☕ Buy me a coffee