2015年8月31日 星期一

解決PHP JSON 中文亂碼的問題

直接用json_encode()顯示會有亂碼

程式:
$arr['a'] = '小灰狼';
echo json_encode($arr);

輸出:
{"a":"\u5c0f\u7070\u72fc"}

改使用 urlencode()/ urldecode()
程式:
$arr['a'] = urlencode('小灰狼');
echo urldecode(json_encode($arr));

輸出:
{"a":"小灰狼"}

但是通常沒這個必要,因為在瀏覽器或java中,javascript和java會自動識別為中文

PHP5.4之後可使用 JSON_UNESCAPED_UNICODE
$arr['a'] = '小灰狼';
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
輸出:
{"a":"小灰狼"}



參考資料:
http://phpwolf.blogspot.com/2012/04/php-json.html
http://outsidenote.blogspot.tw/2013/03/jsonencodeunicode.html 解決json_encode中文UNICODE轉碼問題

沒有留言:

張貼留言