2011-09-21 122 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中,这是在工具 - >编码