passando caratteri speciali con encodeURI in javascript
-
12-09-2019 - |
Domanda
Ho un campo di input HTML collegato a un pulsante con una funzione onclick in javascript che può passare il valore di campo di testo a un campo di testo di un'altra pagina. Mentre passando i valori da una pagina all'altra tramite una richiesta URL di una JSP, ho scoperto che la codifica dei valori con encodeURI()
ottiene:
- £ -> Â £ (2 segni !!)
- o -> ¶ (2 segni !!)
Quando uso javscript escape()
ottengo le codifiche appropriate, ma purtroppo il segno + scomparirebbe. È che ci sono soluzione migliore per avere una sorta di codifica stabile di personaggi?
Soluzione
encodeURI()
codifica con codifica UTF-8, che è il motivo per cui si vedono i due segni per la codifica di uno caratteri (è normale).
Se si desidera utilizzare la fuga e ancora mantenere il segno +
, è possibile utilizzare il seguente:
function mod_escape(value) {
value = escape(value);
return value.replace(/\+/g, '%2B');
}
Altri suggerimenti
Credo che si dovrebbe usare encodeURIComponent () su ogni singolo tasto = coppia di valori e decodeURIComponent in seconda pagina per ogni coppia chiave = valore.