php json_decode utf8问题

时间:2011-09-21 09:22:04

标签: php utf-8 json

我的MySQL中有一个json编码的条目

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

当我从Mysql获取这些数据时,我得到它的原样。完全相同。但是当我尝试解码时,utf8字符会发生变化。像“İ”或“ş”一样不会解码。它们看起来像“u015f”

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

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

在我的php文件的顶部。我也有

mysql_query( "SET NAMES 'utf8' " );

连接到数据库后。

那么我应该怎么做才能用utf8字符解码我的数据?

2 个答案:

答案 0 :(得分:0)

编码重音字符的解码似乎在这里正常工作

http://codepad.org/7Uh9R3fY

使用此代码

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

如果您看到“u015f”作为值,那么您可能在此转义序列之前缺少正斜杠,那么您确定您的代码没有删除斜杠吗?

答案 1 :(得分:0)

如果您使用浏览器查看此尝试将编码设置为UTF8或自动检测。在Chrome中,这是在工具 - &gt;完成的。编码