2009-07-09 11 views
24

私はhtmlテキストを持っています。私はPHPでurlencode関数を使ってそれをエンコードしていました。 javascriptでそのテキストをデコードしたいと思います。 javascriptでunescape関数を使うと、すべての特殊文字は元の文字に置き換えられますが、sapceは '+'に置き換えられます。どのように私はそれを正しく行うことができますので、スペースはスペース自体に置き換えられますか?php javascriptのURLエンコード

答えて

16

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

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

+0

thtは私のために動作します – Andromeda

48

PHP rawUrlEncode()== JavaScriptのencodeURIComponentで()

PHP rawUrlDecode()== JavaScriptのは、decodeURIComponent()

+1

php urlencodeはjavascriptと互換性がありませんので、代わりにrawUrlEncodeを使用してください。 –

+0

'+'文字では機能しません! – coderunner

+0

私のために働く (((PHP)) $ msg = array(); $ msg ['adds'] = rawUrlEncode($ complexAddsWithHTMLMarkup); echo json_encode($ msg); ......(((jQuery ajax dataType json)))) decodeURIComponent(msg.adds); – Coisox

3

カッコこの投稿に記載されているすべてのものに対する例外です。上

オタクモード:

つまり

PHP rawUrlEncode() !== JavaScript encodeURIComponent() 

が、真

PHP rawUrlEncode() == JavaScript encodeURIComponent() 

、に安全なものとして扱われていない多くの特殊文字がありますそれらがencodeURIComponentにあるときにrawurlencode。