2011-10-16 38 views
3

昨天我遇到了從URL獲取一些Unicode字符串的問題。其實我使用CodeIgniter,URL段將被傳遞到控制器/函數(參數)。我不知道是CI改變了編碼還是其他的東西。我的內容和地址欄中的HTML頁面中都有正確的編碼,直到我獲得這些Unicode段。將URL編碼的字符串轉換爲UTF-8

例如:

localhost/df-gamez/news/افتتاح-جدید-سایت-تیم-دریم-فکتوری 

最後段是perisan字符是根據UTF-8。這是目前正確無處不在,但是當我在我的代碼得到它,它會變成這樣的事情:

%d8%a7%d9%81%d8%aa%d8%aa%d8%a7%d8%ad-%d8%b3%d8%a7%db%8c%d8%aa-%d8%ac%d8%af%db%8c%d8%af- 
%d8%aa%db%8c%d9%85-%d8%af%d8%b1%db%8c%d9%85-%d9%81%da%a9%d8%aa%d9%88%d8%b1%db%8c 

我試圖把它與mb_encode改爲UTF-8,但事實並非如此。我的HTML頁面和控制器文件都格式化爲UTF-8無BOM。

平安!

回答

6

使用urldecode函數進行解碼。

echo urldecode("%d8%a7%d9%81%d8%aa%d8%aa%d8%a7%d8%ad-%d8%b3%d8%a7%db%8c%d8%aa-%d8%ac%d8%af%db%8c%d8%af-%d8%aa%db%8c%d9%85-%d8%af%d8%b1%db%8c%d9%85-%d9%81%da%a9%d8%aa%d9%88%d8%b1%db%8c"); 

會給你افتتاح-سایت-جدید-تیم-دریم-فکتوری

+0

它給了我** ----- ** – MahanGM

+0

@MahanGM您是否在您的html頭文件中添加了這個? – xdazz

+0

是的。我先說。它在頁面中是正確的。此外,我嘗試** iconv **在** urldecode **頁面有人提到它。 – MahanGM

相關問題