0

スペースをプラス(+)または%20にエンコードするタイミングによると?htmlフォームの名前または値にスペースがある場合、ブラウザはそのスペースを「+」にエンコードしますが、ユーザーが意図的に入力した「プラス」のサインイン値(テキストフィールドなど)がある場合はどうなりますか?私たちのウェブサーバーはシンボルを誤解して、それを宇宙に戻しますか?これをどのように回避しますか?

4

2 に答える 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 に答える