El signo más no siempre es un espacio
La herramienta URL de Moyoutil convierte componentes URI. Usa decodeURIComponent para decodificar, por lo que + se conserva. URLSearchParams aplica las reglas de application/x-www-form-urlencoded: sustituye + de la cadena original por un espacio antes de decodificar los escapes de porcentaje. Por ese orden, un signo más representado por %2B se conserva como +.
Resultado de ejecutar la misma entrada en dos caminos
Este es el resultado de ejecutar la función urlComponent del proyecto y JavaScript URLSearchParams el 5 de octubre de 2026. Las comillas en la tabla son marcas JSON que hacen visibles los espacios, no caracteres que se incluyen en el resultado. En el análisis de consultas, anteponemos a cada entrada q=.
| Entrada | Decodificación de Moyoutil | URLSearchParams |
|---|---|---|
C++ | "C++" | "C " |
C%2B%2B | "C++" | "C++" |
a+b | "a+b" | "a b" |
a%20b | "a b" | "a b" |
Para conservar los términos de búsqueda, cree consultas con valores originales
Este ejemplo solo crea cadenas; no envía solicitudes a un servidor. Al pasar el valor original C++ guide a URLSearchParams, los signos más se serializan como %2B y el espacio como +. encodeURIComponent convierte ese espacio en %20. En este ejemplo, ambos resultados recuperan el valor original al analizarse como consulta.
const original = "C++ guide";
const query = new URLSearchParams({ q: original }).toString();
// q=C%2B%2B+guide
const component = encodeURIComponent(original);
// C%2B%2B%20guide
new URLSearchParams(query).get("q");
// C++ guideURL de WHATWG: serializar URLSearchParams
La herramienta URL de Moyoutil no tiene campos para ensamblar nombres y valores de consulta ni un modo de decodificación de formularios. Para inspeccionar un valor, codifique C++ guide, decodifique el resultado y compárelo con el original. No introduzca una URL completa en el campo de conversión de valores. Compruebe las reglas que exige la API real.
Si ingresa un valor ya codificado, también se convertirá el signo de porcentaje.
Pase valores originales sin codificar al formato de objeto de URLSearchParams. Si pasa un valor ya codificado con encodeURIComponent, % se vuelve a codificar como %25. Analizar la consulta siguiente una vez devuelve C%2B%2B, no C++. Compruebe las etapas de envío y recepción antes de intentar decodificaciones repetidas.
const encoded = encodeURIComponent("C++");
// C%2B%2B
const query = new URLSearchParams({ q: encoded }).toString();
// q=C%252B%252B
new URLSearchParams(query).get("q");
// C%2B%2BOrden de verificación de enlaces problemáticos
- Mantiene juntos el término de búsqueda original y la cadena de consulta pasada. Distinga entre C++ y C%2B%2B.
- Compruebe si el código de recepción es decodeURIComponent o un analizador de consultas basado en formularios. Los resultados de decodificación de Moyoutil por sí solos no determinan los resultados del servidor.
- Reconstruya la consulta con los valores originales y compárelos con los resultados del análisis. Distinga entre código de ejemplo y reglas API reales.
La notación de porcentaje incompleta, como % o %2, es un error en Moyoutil. %FF también es un error porque no es texto UTF-8 válido. Esta verificación no significa que el manejo de errores de otros analizadores sea el mismo, ni es una función para recuperar automáticamente el texto original.
Preguntas frecuentes
¿Debo usar %20 o +?
Al codificar un valor con Moyoutil, un espacio se convierte en %20. La serialización de URLSearchParams usa +. Compruebe las reglas del receptor y que la ida y vuelta devuelva el valor original.
¿Puedo reemplazar todos los signos más originales con espacios?
No. Eso cambia el significado de valores como C++. Aplique las reglas de análisis de formularios solo a cadenas recibidas en ese formato; no cambie arbitrariamente el texto original sin codificar.