2011-12-21 14226 views
4

阿拉伯字符我有這些阿拉伯語一句話:發送的網址

封爲爵士在他前面的只有十天俱樂部

它必須在URL發送到決定貝爾巴托夫的未來。我嘗試這樣的方法:

$url = 'http://example.com/?q='.urlencode('نايتيد أمامه عشرة أيام فقط لكي يقرر مستقبل برباتوف في النادي'); 

該編碼的結果是: %D9%86%D8%A7%D9%8A%D8%AA%D9%8A%D8%AF +%D8%A3%D9 %85%D8%A7%D9%85%D9%87 +%D8%B9%D8%B4%D8%B1%D8%A9 +%D8%A3%D9%8A%D8%A7%D9%85 +%D9 %81%D9%82%D8%B7 +%D9%84%D9%83%D9%8A +%D9%8A%D9%82%D8%B1%D8%B1 +%D9%85%D8%B3%D8%AA %D9%82%D8%A8%D9%84 +%D8%A8%D8%B1%D8%A8%D8%A7%D8%AA%D9%88%D9%81 +%D9%81%D9%8A + %D8%A7%D9%84%D9%86%D8%A7%D8%AF%D9%8A

但PHP腳本在$ _GET [ 'q']查詢字符串接收到該:

نايتيد أمامه عشرة أيام Ùقط لكي يقرر مستقبل برباتو٠ÙÙŠ النادي 

php文件是UTF-8編碼的。任何想法?

+0

的可能重複[什麼是URL編碼Unicode字符的正確方法?(Http://stackoverflow.com/questions/912811/what-is-the-proper-way-to-url-encode-unicode-字符) – 2011-12-21 14:56:51

+0

您是如何輸出的'$ _GET [ 'q']'的價值? – geoffspear 2011-12-21 14:58:06

+0

@Wooble:回聲$ _GET [ 'Q']; – andufo 2011-12-21 14:58:32

回答

4

您必須urldecode您的編碼實體。另外請記住,UTF8和PHP不是一個很好的組合。

+1

咦? PHP和UTF8不是很好的組合?你爲什麼這麼說? – hakre 2012-01-29 13:57:18

1

不使用進行urlencode只是用rawurlencode

2

正如我在其他問題提了,你應該做進行urlencode阿拉伯文文本

urlencode('كلام-عربي') 

而且其非常重要的字符集代碼添加到的head標籤頁面,否則該鏈接將無法正常工作

<meta charset="utf-8"> 
0

正如我在其他問題提了,你應該在URI

做urldecode阿拉伯文文本

回波urldecode(爆炸(,$ _SERVER [ 'REQUEST_URI'],2) '?');