JavaScriptでencodeURIを使用して特殊文字を渡す
-
12-09-2019 - |
質問
テキストフィールドの値を別のページのテキストフィールドに渡すことができるJavaScriptのonclick関数を備えたボタンにリンクされたHTML入力フィールドがあります。JSP の URL リクエストを介してあるページから別のページに値を渡すときに、値を次のようにエンコードしていることがわかりました。 encodeURI()
取得:
- £ --> £ (2 つの記号 !!)
- ö --> ö (記号が 2 つ !!)
Javascriptを使用する場合 escape()
適切なエンコードは得られますが、残念ながら + 記号が消えてしまいます。ある種の安定した文字エンコーディングを実現するためのより良い解決策はありますか?
解決
encodeURI()
は、あなたが(それは普通のことです)1つの文字を符号化するための2つの兆候を参照してください理由である、UTF-8エンコーディングを使ってエンコードします。
あなたはエスケープを使用して、まだ+
記号を維持したい場合は、以下を使用することができます:
function mod_escape(value) {
value = escape(value);
return value.replace(/\+/g, '%2B');
}
他のヒント
私はあなたがそれぞれのキー=値のペアの2ページ目で、それぞれ単一のキー=値のペアとは、decodeURIComponentにencodeURIComponentで()を使うべきだと思います。
所属していません StackOverflow