回答:
ここでこの回答に従って:str='foo%20%5B12%5D'
エンコードfoo [12]
:
%20 is space
%5B is '['
and %5D is ']'
これはパーセントエンコーディングと呼ばれ、urlパラメータ値の特殊文字のエンコーディングに使用されます。
編集ところで、私がhttps://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Descriptionを読んでいたとき、なぜ多くの人が同じ検索をするのかがわかりました。ページの下部にあるメモを参照してください。
また 、URLの最新のRFC3986に従って、角かっこを(IPv6用に)予約し、URLの一部となる可能性のあるもの(ホストなど)を形成するときにエンコードされないようにしたい場合は、次の方法が役立つことがあります。
function fixedEncodeURI (str) {
return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}
うまくいけば、これが人々がこの質問に出くわしたときに問題を解決するのに役立つでしょう。
彼らはとを表し[
てい]
ます。エンコーディングは「URLエンコーディング」と呼ばれます。
まあそれは通常のURLエンコーディングです
したがって、それら[
はそれぞれの略です]
簡単に見てみると、このオンラインツールを使用して、 percent-en / decode できます。
データはおそらく、次のようなWebフォームから投稿されたはずです(ただし、はるかに複雑です)。
<form action="http://example.com" method="post">
User login <input name="user[login]" /><br />
User password <input name="user[password]" /><br />
<input type="submit" />
</form>
メソッドが「投稿」ではなく「取得」の場合、送信ボタンをクリックすると、次のようなURLに移動します。
http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456
または:
http://example.com/?user[login]=username&user[password]=123456
反対側のWebサーバーはuser[login]
とuser[password]
パラメータを受け取り、それらの値を含むフィールドとフィールドを持つuser
オブジェクトにします。login
password
これらの記号がurlで発生する理由は特に重要ではありません。具体的には、https://www.php.net/manual/en/function.parse-str.php#76792を参照してください。
parse_str('foo[]=1&foo[]=2&foo[]=3', $bar);
上記は以下を生成します:
$bar = ['foo' => ['1', '2', '3'] ];
クエリ変数を配列で区切る方法は何ですか(少なくともphpでは)。