スペースをプラス(+)または%20にエンコードするタイミングによると?htmlフォームの名前または値にスペースがある場合、ブラウザはそのスペースを「+」にエンコードしますが、ユーザーが意図的に入力した「プラス」のサインイン値(テキストフィールドなど)がある場合はどうなりますか?私たちのウェブサーバーはシンボルを誤解して、それを宇宙に戻しますか?これをどのように回避しますか?
質問する
5749 次
2 に答える
3
私たちのウェブサーバーはシンボルを誤解して、それを宇宙に戻しますか?
いいえ、+
文字がフォームに入力されると、にエンコードされるため%2B
です。
次に例を示します(フィドル):
<form method="POST" action="/">
<input name="foo" type="text" value="+">
<input name="bar" type="text" value="bacon sauce">
</form>
<script>
// This encodes the form, (i.e. that's what your server receives)
alert( $('form').serialize() );
</script>
警告ボックスに次のように表示されます。foo=%2B&bar=bacon+sauce
これは、+
がとしてエンコードされていることを意味し%2B
ます。したがって、サーバーでは、すべての+
文字を、、space
および%2B
に変換するだけ+
ですが、おそらくデコード部分はフレームワークまたはライブラリに任せる必要があります。</ p>
パラメータエンコーディングで遊ぶために使用できるフィドルは次のとおりです。フィドル
于 2012-11-12T05:59:40.050 に答える
0
Plusは、%表記のurlencoded形式に変換する必要があります。この場合、%2Bです。
于 2012-11-12T05:53:46.540 に答える