2015-02-24 128 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

相關問題