2015-02-24 133 views
0

我有retreving一个城市后返回城市(和其他一些数据)的print_r的为什么在这种情况下json_encode返回false?

//after some logic 
print_r($cities); 
echo json_encode($cities); 

结果的列表,在这种情况下,麦德林市的函数:

Array ([0] => Array ([id] => 1 [state_id] => 2 [name] => Medellín [propauthor] => 0)) 

json_encode()刚返回false

编辑: json_last_error()返回JSON_ERROR_UTF8,正如你所看到的城市可能有波浪线(重音)

+0

json_last_error()返回什么? – NaeiKinDus 2015-02-24 13:38:06

+0

你好,我更新了我的问题,以便更直接,避免使用不必要的东西...我要结帐你说的功能 – JuanBonnett 2015-02-24 13:39:04

+0

JSON_ERROR_UTF8 ...有些城市有口音,就像本例中的“麦德林,哥伦比亚”我的Web应用程序已经准备好了一个UTF-8标题,我该如何解决这个特定的PHP文件,它叫做Via Ajax? – JuanBonnett 2015-02-24 13:44:14

回答

2

从PHP的联机帮助页json_last_error():

JSON_ERROR_UTF8畸形的UTF-8字符,可能是不正确编码(PHP 5.3.3)

你必须确保向json_encode的数据( )是UTF8,您应该尝试使用iconv将您的字符串转换为适当的格式。

+1

那么,更改MySQL表来处理UTF-8现在,结果集正在到达正确编码为UTF-8的json_encode,而不是'latin1_swedish_ci'。它正在工作 – JuanBonnett 2015-02-24 13:55:07

相关问题