php的json_encode()中文编码问题

来源:互联网 发布:淘淘居淘宝小号 编辑:程序博客网 时间:2024/05/21 12:50

今天,看东西,突然看到之前写的代码,得记录下来,不然又遗忘了!

php 5.4.0之前,json_encode() 是不支持 中文编码的

5.4.0之后,json_encode()新增了 JSON_UNESCAPED_UNICODE 选项,支持了中文,我们得写一个兼容函数:

function ijson_encode($value, $options = 0) {if (empty($value)) {return false;}if (version_compare(PHP_VERSION, '5.4.0', '<') && $options == JSON_UNESCAPED_UNICODE) {$json_str = preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", json_encode($value));} else {$json_str = json_encode($value, $options);}return addcslashes($json_str, "\\\'\"");}
光上面还不行,得注意 JSON_UNESCAPED_UNICODE,这个常量,在<5.4.0应该是没有的,我们得定义。

/* * 兼容 <5.4.0 版本,json_encode() 中文转为unicode编码问题。添加 JSON_UNESCAPED_UNICODE 常量 */if (!defined('JSON_UNESCAPED_UNICODE')) {define('JSON_UNESCAPED_UNICODE', 256);<span style="white-space:pre"></span>// php定义该常量为256}



0 0
原创粉丝点击