HTMLテキストがあります。 urlencode関数を使用してphpでエンコードしました。そのテキストをJavaScriptでデコードしたいと思います。 javascriptでunscape関数を使用すると、すべての特殊文字が置き換えられますが、sapceは「+」に置き換えられます。スペースがスペース自体として置き換えられるように、どうすれば正しく行うことができますか?
代わりにrawurlencodeを使用してみてください-urlencodeは、「歴史的な」理由でいくつかの方法が異なります。
詳細については、 http://us.php.net/manual/en/function.urlencode.php を参照してください。
PHP rawUrlEncode()== JavaScript encodeURIComponent()
PHP rawUrlDecode()== JavaScript decodeURIComponent()
括弧は、この投稿で述べられているすべての例外です。
オタクモードオン:
false
PHP rawUrlEncode() !== JavaScript encodeURIComponent()
しかし本当
PHP rawUrlEncode() == JavaScript encodeURIComponent()
つまり、encodeURIComponentにある場合、rawurlencodeでは安全として扱われない特殊文字が多数あります。
これを試して:
return decodeURIComponent((str + '').replace(/\+/g, '%20'));