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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top