Decodificador de URL

Una pasada elimina una capa y conserva el original editable.

Identifica la codificación antes de decodificar

Una pasada elimina una capa y conserva el original editable.

Paso 1

Elige el modo correspondiente

Componente decodifica separadores; URI completa conserva sus escapes; formulario convierte + en espacio.

Paso 2

Compara el resultado

Los escapes incompletos y el UTF-8 inválido producen un error sin cambiar la entrada.

Paso 3

Respeta las capas

Copia o descarga el resultado. Investiga los escapes restantes sin decodificarlos repetidamente de forma automática.

Usos prácticos

Leer una consulta de un registro

En una consulta de registro, identifica primero campos codificados. En q=A%26B&lang=en, q vale A%26B; componente produce A&B. Decodificar todo primero haría parecer el ampersand interno otro separador.

Guarda el original y comparte muestras ficticias. El texto revela nombres o tokens. La página inspecciona un valor, no una colección de campos ni el destino de una redirección.

Diagnosticar signos más

Compara C++ con C%2B%2B. Componente da C++ en ambos; formulario convierte los más literales en espacios pero %2B en más.

Determina la convención del emisor antes de cambiar. Un espacio inesperado no prueba un espacio original. La advertencia de + pide investigar, no cambiar automáticamente a formulario.

Seguir una redirección anidada

Para un valor anidado, decodifica %252F una vez a %2F y determina la capa. Una segunda pasada componente separada produciría /.

Puede ser correcto para un valor interior e incorrecto para toda la dirección. Guarda cada etapa en vez de continuar hasta la legibilidad. Leerlo no valida firma, destino ni ruta previstos.

Saludo de ClockTools recuperado de la codificación porcentual
El modo componente recupera el saludo de ClockTools en una sola pasada. La entrada codificada permanece visible junto al texto decodificado.

Identificar el valor antes de decodificar su contenido

Componente decodifica escapes reservados del valor. URI completa conserva los que decodeURI trata como estructura. Formulario sustituye primero + literales por espacios y después decodifica estrictamente. Elige la convención del emisor, no la salida más familiar.

Se procesa una cadena, no una colección analizada. Para varios campos identifica separadores codificados antes de decodificar nombres y valores. Un %26 interno no debe convertirse en separador por haber decodificado toda la colección demasiado pronto.

JavaScript define el conjunto preservado de decodeURI, incluidas barra, ampersand y más. %2F%26 permanece en URI completa mientras componente da /&. Mantener secuencias puede ser el resultado correcto, no un fallo. ECMAScript decodeURI y conjunto de escapes preservados.

Dos capas requieren dos decisiones

  1. %252FEntrada anidada
  2. %2FDespués de una pasada
  3. /Después de otra pasada independiente
La herramienta se detiene en %2F. La última etapa no es automática.

Una capa es un límite significativo

%252F pasa a %2F, no a /. Puede tratarse de un valor anidado intencionadamente o de una doble codificación errónea. Primero hay que distinguirlos.

Decodificar hasta que nada cambie puede transformar datos en estructura. Una barra altera segmentos y un ampersand separa campos. Conserva el original y averigua las capas esperadas.

decodeURI conserva %2F y %26; decodeURIComponent los recupera dentro de un valor. La norma explica por qué no se deben borrar indiscriminadamente esos límites. Orientación sobre decodificación del RFC 3986.

Un escape válido no siempre es texto válido

Dos dígitos después de % no bastan. %C3%A9 representa é; %C3%28 no es UTF-8 válido. No se insertan símbolos de sustitución que oculten el problema.

Los datos antiguos pueden usar otro juego de caracteres. Esta herramienta no detecta codificaciones ni interpreta Latin-1. Obtén la codificación original.

En formulario, + se sustituye antes de decodificar, de modo que %2B sigue siendo un signo más. A diferencia del analizador tolerante WHATWG, aquí los bytes UTF-8 inválidos se rechazan. Orden de análisis de formularios WHATWG.

Interpretar resultado y secuencias restantes

La tabla compara la misma entrada similar a formulario. %2B pasa a más en componente/formulario; solo un + literal pasa a espacio en formulario. El orden preserva esa distinción. URI completa mantiene %2B porque más pertenece al conjunto preservado.

El contador de escapes describe la entrada. Bytes y puntos de código de salida describen texto decodificado, no glifos. caf%C3%A9 da café: dos escapes representan los dos bytes de é; la salida tiene cinco bytes UTF-8 y cuatro puntos. Una salida vacía con error no es un valor vacío correcto.

El ejemplo reemplaza entrada; Borrar la elimina. Copia y TXT usan resultado y están desactivados sin salida. El enlace comparte página sola y el del codificador no transfiere entrada. Conserva original y modo para comparar ida y vuelta.

Ejemplos fijos: un modo, una pasada
EntradaModoResultado
caf%C3%A9Componente URIcafé
A%2BB+CValor de formularioA+B C
A%2BB+CComponente URIA+B+C
%2F%26URI completa%2F%26
%252FComponente URI%2F
%C3%28Componente URIError UTF-8; sin salida

La fila errónea no es texto parcial. Ningún ejemplo visita ni certifica una dirección.

Separar sintaxis, bytes y capas adicionales

Un %, %2 o %GG final falla la sintaxis. Un signo de porcentaje literal necesita %25; sustituir todos indiscriminadamente ocultaría escapes válidos. Revisa fuente o emisor, no adivines la corrección de una cadena incompleta.

%E9 es sintácticamente correcto pero solo no representa é en UTF-8; %C3%A9 sí. %C3%28 y %FF también se rechazan aunque cada escape tenga dos dígitos. El error estricto evidencia un problema de bytes. No es un decodificador Latin-1 ni detector de charset.

Si queda %2F, distingue entre la conservación de escapes en URI completa y un signo % codificado en una capa exterior. Comprueba modo y original antes de otra pasada. Un % suelto en texto mixto puede fallar toda la conversión; entrada sigue editable y no se produce texto parcial.

Si fallan copia o exportación, usa resultado visible y otra acción disponible. No envíes redirecciones privadas o credenciales en reportes. Decodificar no verifica host, firma, acceso o confianza, y la página nunca abre la dirección.

Método y límites

Se comprueban los escapes antes de una pasada estricta de JavaScript. Formulario normaliza primero los signos más. Un error no genera resultados parciales ni reemplaza la entrada.

El resultado no demuestra seguridad ni accesibilidad. No se siguen enlaces ni se validan firmas, formularios completos o codificaciones distintas de UTF-8.

Corrige la secuencia original o solicita UTF-8 válido. Comunica modo y ejemplo ficticio, sin redirecciones privadas. Prueba la corrección con el receptor.

Método y límites · Política de correcciones

Preguntas frecuentes

¿Por qué permanece %2F en URI completa?

Este modo conserva delimitadores reservados; usa componente para un valor.

¿Por qué no cambia el signo más?

Solo formulario interpreta el signo más literal como espacio.

¿Se decodifican capas automáticamente?

No. Cada pasada elimina una sola capa.

¿Por qué falla %E9 si otro decodificador muestra é?

E9 solo no es UTF-8 válido para é: se usa C3 A9. Otro decodificador puede suponer un charset antiguo o reemplazar bytes. Averigua la codificación original en vez de tomar una letra legible como prueba. Aquí solo se admite UTF-8 estricto.

¿Por qué se rechaza %C3%28 con escapes bien formados?

Sintaxis y UTF-8 son comprobaciones distintas. C3 inicia una secuencia multibyte; 28 no es continuación válida. Se devuelve error sin salida parcial y se conserva el original editable para investigar el byte ausente o modificado.

¿Debo decodificar una consulta antes de dividir sus campos?

No. %26 puede volverse & y un separador falso. Identifica primero límites codificados y decodifica cada valor según convención. No se realiza ese análisis estructurado ni se construye una consulta corregida aquí.

¿Un resultado vacío significa éxito?

Revisa estado. Entrada vacía produce vacío; sintaxis o UTF-8 erróneos también, pero con error. Original sigue corregible y copia/exportación quedan desactivadas. Un error no significa limpieza de caracteres indeseados.

¿Puedo decodificar entidades HTML o Base64 aquí?

Es un decodificador porcentual, no selector general de formatos. & y Base64 no se interpretan como tales. Obtén el formato real y usa su herramienta; permanecer igual no demuestra que una cadena estuviera codificada porcentualmente.