json中文字符串中文乱码问题

今天面试被问到这个问题,明明以前是知道的,半年没碰之后,硬是没有想起来,只好硬着头皮说,tp自带的json助手函数是不会有这个问题的,场面一度十分尴尬。

例子

1
2
3
4
<?php
header("Content-type:application/json;charset=utf-8");
$array = ['中文','234','abc'];
echo json_encode($array)

返回结果
修改前

PHP5.4版本后,已经给Json新增了一个选项: JSON_UNESCAPED_UNICODE。加上这个选项后,就不会自动把中文编码了。
修改后的代码

1
2
3
header("Content-type:application/json;charset=utf-8");
$array = ['中文','234','abc'];
echo json_encode($array,JSON_UNESCAPED_UNICODE);

结果
修改后

这样就顺利解决了

文章作者: Luis
文章链接: https://warrest.github.io/2020/05/08/json%E4%B8%AD%E6%96%87%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Luis's Blog