解決PHP JSON 中文亂碼的問題

通常我們在和其他廠商串接資料時的API除了使用XML製作外,JSON格式也是一個選項。
小灰狼通常會用XML作為API的介質,不過總是會遇到例外。

在PHP中要將資料轉換成JSON格式只需要用json_encode這個函示就可以搞定。
$arr = array('a'=>'小灰狼');
echo json_encode($arr);
不過,有趣的是,PHP中若是把中文做json_encode會變成亂碼。當然這也是有解藥的(不然我寫這個幹嘛)
$arr = urlencode(array('a'=>'小灰狼'));
echo urldecode(json_encode($arr));
這個原理很簡單,因為只有中文會讓json_encode出現亂碼,那麼我們先用urlencode讓字串不會有中文,當被編碼後的字串被JSON處理過後,再利用urldecode將剛剛的字串轉回來。

參考資料:

PHP 输出中文 JSON 字符串

留言