234

+URL のクエリ文字列の a がスペースを表していることは承知しています。これは、クエリ文字列領域の外でも当てはまりますか? つまり、次の URL を実行します。

http://a.com/a+b/c

実際に表す:

http://a.com/a b/c

(したがって、実際に である必要がある場合はエンコードする必要があります+)、または実際に実際に表すのa+b/cですか?

4

6 に答える 6

177
  • URL のパス セクションのパーセント エンコーディングはデコードされることが期待されますが、
  • パス コンポーネント内のすべての+文字は、文字どおりに扱われることが期待されます。

明示的に言う+と、クエリコンポーネントの特殊文字のみです。

https://www.rfc-editor.org/rfc/rfc3986

于 2009-06-17T09:43:49.040 に答える
0

encodeURIComponent 関数を使用して URL を修正します。ブラウザと node.js で動作します

res.redirect("/signin?email="+encodeURIComponent("aaa+bbb-ccc@example.com"));


> encodeURIComponent("http://a.com/a+b/c")
'http%3A%2F%2Fa.com%2Fa%2Bb%2Fc'
于 2015-01-16T06:23:48.740 に答える
-4

以下を試してください:

<script type="text/javascript">

function resetPassword() {
   url: "submitForgotPassword.html?email="+fixEscape(Stringwith+char);
}
function fixEscape(str)
{
    return escape(str).replace( "+", "%2B" );
}
</script>
于 2014-01-23T22:50:48.287 に答える
-5

URL は常にエンコードする必要があります。

Ruby が URL をエンコードする方法は次のとおりです。

irb(main):008:0> CGI.escape "a.com/a+b"
=> "a.com%2Fa%2Bb"
于 2009-06-17T08:00:58.967 に答える