Estoy codificando una cadena que se pasará en una URL (a través de GET). Pero si uso escape, encodeURIo 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%26está&en codificación URI .Entonces, antes de que URI codifique su cadena, es posible que desee decodificar HTML y luego codificarla con URI :)
resultado
%26AndOtherHTMLEncodedStuffEspero que esto te ahorre algo de tiempo
fuente