2011-09-21 175 views
1

我有一個JSON編碼入口在我的MySQLPHP json_decode UTF8問題

[{"0":{"town":"İstanbul","location":1},"1":{"town":"Eskişehir","location":1},"orderDay":"2011-09-20"}] 

當我從MySQL得到這個數據,我得到它,因爲它是。完全相同。但是當我嘗試解碼它時,utf8字符會發生變化。像「İ」或「ş」不解碼,因爲它們是。他們看起來像「u015f」

My MySql是utf8。而我的行也是utf8。我有

header('Content-Type: text/html; charset=utf-8'); 

在我的PHP文件的頂部。我也有

mysql_query("SET NAMES 'utf8' "); 

我連接到數據庫後。

那麼我應該怎麼做才能用utf8字符解碼我的數據?

+0

請顯示您的代碼的相關部分... –

+0

您解碼json在不同的php文件? – SnatchFrigate

+0

是抓舉。我將數組編碼爲json的文件在另一個php文件中。它對數組進行編碼並將其插入到MySql中。我試圖從Mysql中獲取數據,就像我說的,我完全一樣。但是當我嘗試解碼它時,它會改變utf8字符 – zbgokalp

回答

0

編碼重音字符的解碼似乎與此代碼

<? 
    $str = json_encode(array(name => 'ş')); 
    echo $str; 
    print_r(json_decode($str)); 
?> 

,如果你看到「u015f」的值,那麼你很可能缺少正確這裏

http://codepad.org/7Uh9R3fY

工作在此轉義序列之前轉發斜槓,那麼您確定您的代碼不會刪除該斜槓嗎?

0

如果您使用瀏覽器查看此嘗試設置編碼爲UTF8或自動檢測。在Chrome中,這是在工具 - >編碼