2013-05-06 20 views
1
<?php 
header("Content-type: text/csv; charset=GB2312"); 
$arr = array('丂','亐'); 
echo json_encode($arr); 
?> 

取而代之的是提供漢字數組,json_encode返回空值。PHP json_encode不能用中文字符集

+2

您檢查出任何關於此頁面右側的鏈接? – 2013-05-06 11:45:14

+0

是的,我沒有找到我的答案 – 2013-05-06 11:46:38

+0

對我來說你的例子工作正常。所以我想你在這裏混合編碼。確保使用默認的utf-8編碼輸入字符。其他一切都會導致問題。 – arkascha 2013-05-06 11:47:38

回答

3

json_encode只能使用UTF-8編碼的字符串。如果您需要從中文編碼字符串中成功創建有效的json,則需要先將其重新編碼/轉換爲UTF-8。然後json_encode將按照文檔工作。

使用iconv轉換編碼,也可以使用mb_convert_encoding

$str = iconv("GB2312", "UTF-8", $str); 
+0

如果我將它轉換爲utf-8,那麼我將失去中文字符 – 2013-05-06 11:48:44

+0

你能用一個例子來解釋你的答案嗎? – 2013-05-06 11:49:04

+0

@Wasim請參閱編輯轉換的編輯答案。 – 2013-05-06 11:51:09