雖說最新的 PHP 5.4 已經良好支持 JSON 中文編碼,即通過 JSON_UNESCAPED_UNICODE 參數,例如:
json_encode("中文", JSON_UNESCAPED_UNICODE)對於早前 PHP 版本,處理不轉義中文字符的 json 編碼,之前寫過 PHP 輸出中文 JSON 字符串這篇文章,這裡分享個更完美的方法:
/**
* 不轉義中文字符的 json 編碼方法
* @param array $arr 待編碼數組
* @return string
*/
function encode ($arr) {
$str = json_encode($arr);
$search = "#u([0-9a-f]+)#ie";
$replace = "iconv('UCS-2', 'UTF-8', pack('H4', '1'))";
return preg_replace($search, $replace, $str);
}