2012-03-20 7 views
2

私はjQueryのajax呼び出し(encodeURIComponentを使用)を通過し、もう一方の端でPHPでデコードするURLを持っています。私はPHP終了時のrawurldecode()の問題だと思っていましたが、PHPを使ってrawurlencode()とrawurldecode()をテストすると、同じ問題が発生しました。私はここで行う必要がありますか?RawurlencodeとQuirkをデコードしますか?

$thing = rawurlencode("www.nzballet.org.nz?pa=thisthing&parmater1=23a&paramter2=another"); 
echo $thing; 

をこれが生成されます:再現する

www.nzballet.org.nz%3Fpa%3Dthisthing%26parmater1%3D23a%26paramter2%3Danother

その後、私の場合:

$rawurl = "www.nzballet.org.nz%3Fpa%3Dthisthing%26parmater1%3D23a%26paramter2%3Danother"; 
$decoded = rawurldecode($rawurl); 
echo $decoded; 

私は:

www.nzballet.org.nz?pa=thisthing & parmater1 =23a¶mter2=別の

これは、jQueryの(AJAX)とPHPの間を通過するときに私が得た同じ出力なので、それはそれとは何の関係も持っていないですその一部。私は、HTMLヘッダにcharset = UTF-8を指定しています。なぜ、私はその奇妙なキャラクターをそこに持っているのですか?

ありがとうございます!

+0

私にとってうまく動作します:http://codepad.org/LCjJ6dlO – Brad

答えて

0

ウェブブラウザに&paraが表示されていて、段落記号(¶)のエンティティである¶を意味しているとします。この問題についての詳細は、https://meta.stackexchange.com/questions/100905/para-turns-into-within-preを参照してください。

$rawurl = "www.nzballet.org.nz%3Fpa%3Dthisthing%26parmater1%3D23a%26paramter2%3Danother"; 
$decoded = rawurldecode($rawurl); 
echo htmlspecialchars($decoded); 

マニュアルから::、それを回避するにそれらを表示する前にhtmlspecialcharsであなたのエンティティをエンコードするために

特定の文字はHTMLで特別な意味を持っており、HTMLで 表されるべきそれらの意味を保持しているのであれば、

...

'&'(アンパサンド) '&アンペア;' となり

+0

鮮やかな - ありがとう - これは私が逃したものでした! –

関連する問題