Hei。 POSTメソッドを使用して、JSPからサーブレットに情報を送信しています。 POSTメソッドを使って "+"文字を送信すると、スペース文字で置き換えられる理由を理解できません。例:次の文字列を入力すると: 4 + 5 - >サーブレットは4 5を返します。すべての "+"記号を置き換えます。どうすればこの問題を解決できますか?それ以降は式を評価する必要があるので、実際には "+"文字が表示される必要があります。'+'文字を置き換えるPOSTメソッド
3
A
答えて
3
フォーム変数にURLエンコードが送信されます。 「+」のプラス文字は、スペースのURLエンコーディング(1つ)です。また
参照: AJAX POST and Plus Sign (+) -- How to Encode?
リテラルプラス記号を送信する場合は、いずれかのJavascriptまたはハードコード化された「%2Bの」を通してそれをエンコードURLする必要があります。
1
サーバーに送信する前にデータをURLEncode
にする必要があります。サーバーはエンコードされていないデータをデコードしようとしています。その結果、+
がスペースにデコードされます。
1
W3 document on HTTP form submissionで説明されているように、サーブレットは明らかにデータがURLエンコードで到着することを期待しています。 POSTのコンテンツタイプを変更するか、送信しているデータを(よりうまく)エンコードする必要があります。 "+"記号を "%2B"としてエンコードすることができます。
1
URLをエンコードする場合、+
文字はスペースを示します。あなたはURLでこの文字を使用する必要がある場合、あなたはこのようにそれをエスケープする必要があります:
4+5
は、「+」
4%2B5
関連する問題
- 1. 特殊文字を置き換える
- 2. 置き換える文字列
- 3. .NETで機能を置き換える使用せず、文字列内の文字を置き換える
- 4. tr:1文字を2文字に置き換える
- 5. 文字をアンドロイドの別の文字で置き換える?
- 6. regexの文字を他の文字に置き換えるPHP
- 7. Java文字を文字に置き換える
- 8. XSLは(文字の置き換え)
- 9. 文字列の置き換え
- 10. 文字列の置き換え前後の文字列の置換
- 11. 文字の置換え:ブレークライン
- 12. 文字列をユニコード文字に置き換えます
- 13. 文字列をベクトル文字列に置き換えます。
- 14. Javascript文字列内のutf文字を置き換えます
- 15. 文字列を別の文字列に置き換えます
- 16. 文字列Cの制御文字を置き換えます。
- 17. 文字列を特殊文字用に置き換えます。
- 18. PHPのXXXXX文字列の文字を置き換えます
- 19. XSLT - 文字列内の文字数を置き換え
- 20. 文字の値を数字に置き換える
- 21. 文字を数字に置き換えるには?
- 22. 文字列の数字を置き換える - C#
- 23. ラムダの拡張メソッドの文字列値を置き換える方法
- 24. 文字配列の置き換え文字
- 25. 文字列内の文字位置を検索して置き換えます。
- 26. C#拡張メソッドの元の文字列の値を置き換えます
- 27. Regexを使用してスタンドアロン文字を置き換える
- 28. python string数字を置き換える
- 29. R:文字列内の2文字間のドットを置き換える方法
- 30. 文字列内の文字を再帰的に置き換える方法
になり、特殊な文字です。 URLでは、 "%2B"に置き換えてエンコードする必要があります。特別な文字の置き換えのリストは次のとおりです。http://www.blooberry.com/indexdot/html/topics/urlencoding.htm –
@BenoitCourtineデータは、URLの一部ではなく、POST経由で送信されています。しかし、ポストはコンテンツタイプがapplication/x-www-form-urlencodedで送信される可能性が最も高いため、基本的な点は依然として有効です。 –