Las URL solo pueden contener un conjunto limitado de caracteres ASCII, por lo que cualquier otra cosa (espacios, acentos, emoji o los separadores reservados que estructuran una URL) debe estar codificada en porcentaje. Esta herramienta codifica y decodifica esa representación completamente en su navegador. Esta guía explica cuándo buscar codificación de componentes versus codificación de URL completa, por qué un espacio a veces es + y a veces %20, y cómo leer un error de decodificación.
Cuándo usar encodeURIComponent vs encodeURI
Las dos funciones solo se diferencian en los caracteres que protegen. encodeURIComponent escapa a todo excepto al conjunto no reservado (letras, dígitos y - _ . ! ~ * ' ( )), por lo que los separadores reservados como / ? & = # se convierten en %2F %3F %26 %3D %23. Eso es exactamente lo que desea para una sola pieza de datos (un valor de consulta, un segmento de ruta) porque garantiza que el valor no se pueda malinterpretar como estructura.
encodeURI está destinado a una URL completa. Deja intactos los caracteres reservados que delimitan una URL, por lo que https://x.com/a?b=c sigue siendo utilizable. La compensación: no protegerá un valor que a su vez contiene un / o &. Regla general: primero codifique cada valor con el modo componente y luego ensamble la URL; Utilice únicamente el modo de URL completa cuando tenga una URL terminada que simplemente contenga un espacio extraviado o un acento.
Reserved characters and the + vs %20 confusion
RFC 3986 llama a estos caracteres reservados: : /? # [ ] @ ! $&'()*+,; =. Los datos internos deben escaparse; como delimitadores no deben serlo. La fuente más común de errores es el espacio. La codificación porcentual moderna siempre escribe un espacio como %20. Pero el formato más antiguo application/x-www-form-urlencoded (lo que produce un navegador cuando envía un formulario HTML) codifica un espacio en la cadena de consulta como +. Entonces, ?q=a+b y ?q=a%20b pueden significar "a b". Cuando decodifica una cadena de estilo de formulario, active Trate + como espacio; cuando decodifique una ruta o una URL de API moderna, déjela desactivada para que un literal + permanezca como +.
Why decoding fails, and double-encoding
La decodificación genera un error URI mal formado cuando un % no va seguido exactamente de dos dígitos hexadecimales (0–9 A–F). Un signo de porcentaje literal en el texto fuente, como 50% de descuento, es el culpable habitual: debería haberse codificado como %2520... no, como 50%25 de descuento, donde %25 es el porcentaje de escape. La herramienta apunta a la posición de la primera secuencia incorrecta para que puedas localizarla. El peligro opuesto es doble codificación: si codifica una cadena que ya contiene %XX, los signos de porcentaje se escapan y %20 se convierte %2520. La herramienta detecta entradas ya codificadas y le advierte que decodifique en su lugar.
Privacidad: cada operación aquí se ejecuta localmente con el encodeURIComponent nativo del navegador. encodeURI, decodeURIComponent y decodeURI. Nada de lo que pegue (tokens, cadenas de consulta, datos personales) se envía a un servidor.