php数组使用json_encode函数中文被编码成null的原因和解决办法
大寫的囧,提客戶處理問題,前端的APP一直在嘰嘰咂咂,說收到的值是null,弄了半天原來是這個問題,記錄下吧
json格式在開發中用的十分廣泛。在php中json_encode函數可以直接將數組轉成 json格式,十分方便。但是有可能你在使用json_encode函數時,無奈的發現中文被編碼成null了。原來json只支持轉義utf-8編碼格式的中文。php數組使用json_encode函數中文被編碼成null的原因是轉義gbk 或者別的編碼時,中文被忽略了。一般出現在文檔編碼或者輸出的內容編碼是非UTF-8時,也就是說,GBK或者GB2312的中文,就會出現編碼失敗的現象。
php數組使用json_encode函數中文被編碼成null的原因和解決辦法,如果你的程序是采用utf-8編碼,請確保文件保存為utf-8 無bom格式,如果你的程序是gbk的,可以先轉成utf-8編碼后在使用json_encode函數。
知道了這一點,以下的代碼就好寫了。這里給出一個Demo,備忘。?
$array = array('title'=>iconv('gb2312','utf-8','這里是中文標題'),'body'=>'abcd...');?
echo json_encode($array);?
編碼以后的內容就成了這樣:
{"title":"u8fd9u91ccu662fu4e2du6587u6807u9898","body":"abcd..."}
總結
以上是生活随笔為你收集整理的php数组使用json_encode函数中文被编码成null的原因和解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RIP计时器的游戏
- 下一篇: 软件工程第一次作业补充