今天在使用php時掉進了一個坑裡,折騰了好久。 在使用json_encode時,如果數組中存在中文,該中文輸出為null。 示例代碼:
<? = ('id'=>'123456','name'=>'聯想'(json_encode(?>
輸出結果:
(27) "{"id":"123456","name":null}"“聯想”變成null了。 使用下面這個函數解決了此問題。
<? gbk2utf8((( ('gbk2utf8', ('gbk','utf-8',?>
<? = ('id'=>'123456','name'=>'聯想'(json_encode(gbk2utf8(?>
在json_encode之前做一下gbk2utf8轉碼,此時輸出正確結果。
(37) "{"id":"123456","name":"\u8054\u60f3"}"
\u8054\u60f3 為“聯想”的unicode碼,浏覽器會自動轉換成文字。