web-dev-qa-db-ja.com

php javascripturlエンコーディング

HTMLテキストがあります。 urlencode関数を使用してphpでエンコードしました。そのテキストをJavaScriptでデコードしたいと思います。 javascriptでunscape関数を使用すると、すべての特殊文字が置き換えられますが、sapceは「+」に置き換えられます。スペースがスペース自体として置き換えられるように、どうすれば正しく行うことができますか?

26
Andromeda

代わりにrawurlencodeを使用してみてください-urlencodeは、「歴史的な」理由でいくつかの方法が異なります。

詳細については、 http://us.php.net/manual/en/function.urlencode.php を参照してください。

17
Dave

PHP rawUrlEncode()== JavaScript encodeURIComponent()

PHP rawUrlDecode()== JavaScript decodeURIComponent()

51
Lamy

括弧は、この投稿で述べられているすべての例外です。

オタクモードオン:

false

PHP rawUrlEncode() !== JavaScript encodeURIComponent()

しかし本当

PHP rawUrlEncode() == JavaScript encodeURIComponent()

つまり、encodeURIComponentにある場合、rawurlencodeでは安全として扱われない特殊文字が多数あります。

4
David Lapointe

これを試して:

return decodeURIComponent((str + '').replace(/\+/g, '%20'));

ソース: http://phpjs.org/functions/urldecode:572

3
Justo