一:解决中文乱码配置'autoLangToFont' => true, //这几个配置加上可以显示中文'autoScriptToLang' => true, //这几个配置加上可以显示中文'aut
顺晟科技
2022-09-15 09:18:43
74
php输出使用json_encode函数生成的json数据的时候,发现数据中的中文被转义成了unicode编码,如果使用ajax请求的json数据还好一点,浏览器会自动将unicode编码转义回来,但如果直接输出到浏览器上,那就会直接输出 unicode 编码,影响阅读体验。
解决php json_encode函数中文被转义的方法这篇博文不考虑页面编码的问题,只从 json_encode 函数上来解决中文被 unicode 编码的问题,大家可以做个参考。
方法1:
此方法适用于php版本大于5.4情况下,如果php版本低于5.4可参考方法2
设置 json_encode 第二个参数为 JSON_UNESCAPED_UNICODE,则 json_encode 输入带的中文的数据时,中文不会被编码
例:
//feiniaomy.com 顺晟科技博客 $arr = array('code' => 'success','msg' => '这里是一个提示的内容'); echo json_encode($arr); //输出的JSON: {"code":"success","msg":"\u8fd9\u91cc\u662f\u4e00\u4e2a\u63d0\u793a\u7684\u5185\u5bb9"} echo json_encode($arr,JSON_UNESCAPED_UNICODE); // 将第二个参数设置为:JSON_UNESCAPED_UNICODE //输出的JSON:{"code":"success","msg":"这里是一个提示的内容"}
方法2:
低于 5.4 版本的php中,json_encode 函数的第二个参数不起作用,则需要自己定义函数来实现不转义汉字的方法。
例:
$arr = array('Name' => '墨初','Host' => 'http://feiniaomy.com'); //需要判断一个php的版本 if(version_compare(PHP_VERSION,'5.4.0','<')) { foreach($arr as $key => $value){ $jsonstr[$key] = urlencode($value); } echo urldecode(json_encode($jsonstr)); }else{ echo json_encode($arr); }
26
2023-02
24
2022-10
09
2022-10
19
2022-09
15
2022-09
15
2022-09