質問

テキストフィールドの値を別のページのテキストフィールドに渡すことができる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で()を使うべきだと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top