Estoy codificando una cadena que se pasará en una URL (a través de GET). Pero si uso escape
, encodeURI
o encodeURIComponent
, &
será reemplazado por %26amp%3B
, pero quiero que sea reemplazado por %26
. ¿Qué estoy haciendo mal?
javascript
urlencode
dododedodonl
fuente
fuente
&
es la forma correcta de escapar del ampersand en un contexto HTML ... ¿de dónde viene tu fuente? y cual es el destino? Puede ser mejor hacer este lado del servidor, por ejemplo.Respuestas:
Sin ver su código, es difícil responder que no sea una puñalada en la oscuridad. Supongo que la cadena que está pasando a encodeURIComponent () , que es el método correcto para usar, proviene del resultado de acceder a la propiedad innerHTML . La solución es obtener el valor de la propiedad innerText / textContent en su lugar:
Si ese no es el caso, puede usar el método replace () para reemplazar la entidad HTML:
fuente
Si hiciste literalmente esto:
A continuación, el resultado es
%26
, puede probar aquí . Asegúrese de que la cadena que está codificando sea justa&
y no&
comience ... de lo contrario, está codificando correctamente, lo que probablemente sea el caso. Si necesita un resultado diferente por alguna razón, puede hacer un.replace(/&/g,'&')
antes de la codificación.fuente
Hay codificaciones HTML y URI.
&
está&
codificado en HTML mientras%26
está&
en codificación URI .Entonces, antes de que URI codifique su cadena, es posible que desee decodificar HTML y luego codificarla con URI :)
resultado
%26AndOtherHTMLEncodedStuff
Espero que esto te ahorre algo de tiempo
fuente