Sto codificando una stringa che verrà passata in un URL (tramite GET). Ma se uso escape
, encodeURI
o encodeURIComponent
, &
verrà sostituito con %26amp%3B
, ma voglio che venga sostituito con %26
. Che cosa sto facendo di sbagliato?La codifica URL vede "&" (e commerciale) come "&" entità HTML
risposta
Senza vedere il tuo codice, è difficile rispondere a parte una pugnalata al buio. Direi che la stringa che stai passando a cododeURIComponent(), che è il metodo corretto da utilizzare, proviene dal risultato dell'accesso alla proprietà innerHTML interna. La soluzione è quella di ottenere il/textContent valore della proprietà innerText invece:
var str,
el = document.getElementById("myUrl");
if ("textContent" in el)
str = encodeURIComponent(el.textContent);
else
str = encodeURIComponent(el.innerText);
Se questo non è il caso, è possibile utilizzare il replace() metodo per sostituire l'entità HTML:
encodeURIComponent(str.replace(/&/g, "&"));
Se avete fatto letteralmente questo:
encodeURIComponent('&')
allora il risultato è %26
, you can test it here. Assicurati che la stringa da codificare sia &
e non &
per iniziare ... altrimenti la codifica è corretta, il che è probabilmente il caso. Se hai bisogno di un risultato diverso per qualche motivo, puoi fare un .replace(/&/g,'&')
prima della codifica.
... questo è probabilmente il suo problema. –
Sono presenti codifiche HTML e URI. &
è &
encoded in HTML mentre %26
è &
in URI encoding.
Quindi, prima di URI codifica la stringa si potrebbe desiderare di HTML decodificare e poi URI codificarlo :)
var div = document.createElement('div');
div.innerHTML = '&AndOtherHTMLEncodedStuff';
var htmlDecoded = div.firstChild.nodeValue;
var urlEncoded = encodeURIComponent(htmlDecoded);
risultato %26AndOtherHTMLEncodedStuff
Spero che questo ti consente di risparmiare tempo
- 1. codifica componenti URL con una e commerciale &
- 2. Codifica URL e codifica HTML NSStrings
- 3. Perché la documentazione di Twitter e dell'API di Google non codifica la e commerciale negli URL?
- 4. Differenza tra codifica Url e codifica HTML
- 5. Entità HTML encoding e html converting
- 6. problema di codifica, coverting & a & per HTML con PHP
- 7. escaping e commerciale in url
- 8. Uso di entrambi & e amp; rappresentare la e commerciale in KML?
- 9. Come supporto simultaneamente AMP-html e HTML desktop
- 10. Disabilita codifica entità HTML in PHP DOMDocument
- 11. PHP: Decodifica entità Html
- 12. htmlentities() Entità di doppia codifica nella stringa
- 13. XHTML e & (Ampersand) codifica
- 14. Entità ClojureScript e HTML
- 15. w3c markup validator e commerciale (&) errore
- 16. Come faccio a uscire da e commerciali in XML in modo da renderli come entità in HTML?
- 17. php file_get_contents e &
- 18. PHP: codifica degli attributi HTML/decodifica JavaScript
- 19. Rails: Come sfuggire commerciale in formazione URL
- 20. JavaScript bookmarklet e codifica URL
- 21. Come convertire caratteri speciali in entità html?
- 22. Codifica entità HTML (convertire '<' a '<') su iPhone nell'obiettivo
- 23. Decodifica entità HTML in Android
- 24. Sublime Text 2: Caratteri di escape HTML con completamento automatico (che iniziano con la e commerciale)?
- 25. come rilevare la codifica di FileReader html?
- 26. Come uscire dalla codifica url?
- 27. & o & cosa dovrebbe essere usato per & (e commerciale) se usiamo utf8 nel documento xhtml?
- 28. Come posso rimuovere "& nbsp" dai contenuti html?
- 29. Metodo C# per eseguire la codifica URL?
- 30. Che cos'è la codifica url% 2526?
dove viene la stringa venire a partire dal? Puoi pubblicare il codice che hai finora? –
'&' è il modo corretto di sfuggire alla e commerciale in un contesto HTML ... da dove proviene la tua fonte? e qual è la destinazione? Ad esempio, potrebbe essere meglio fare questo lato server. –
Ho estratto qualcosa dal corpo HTML (e questo è codificato in HTML (quindi, ci sono & che ora realizzo)) e devo passarlo in un URL ... Quindi, ho bisogno di decodificare l'html (ma come?) it poi codifica la stringa (con encodeURIComponent) ... – dododedodonl