php中json_decode时中文变成unicode字符

刚入PHP这个坑

在通过curl获取到返回的json格式数据后
想通过json_decode解码成Array数组以便操作

图片描述
图片描述

但发现decode后原本的中文全变成了unicode编码了

图片描述

什么情况啊
纠结半天了

是我服务器的编码问题嘛

阅读 12.5k
6 个回答

clipboard.png

所以你的JSON字符串是UTF-8编码的么?


增补:
我看POST方法里好像有个json_encode,是不是那里的问题?
我自己的encode掩码会加JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK这三个。

还有种方法是建议挂个现成的HTTP库,比如flightzttp这种轻量级的

json 本就以 unicode 编码,默认编码为 UTF-8,类型是数组,没什么问题?至于你解码中文全变成了 unicode 编码......把操作以及结果贴出来看看吧

json_decode之后是个数组啊,你的日志怎么还是字符串???你的日志方法有问题吧,又重新转成json了吧

writeLog()能直接把数组写入去吗?
写日志的时候肯定是把数组再转成json字符串了。
看一下你的writeLog()函数;
要看到数组的话,直接var_dump()出来就好了。

json_encode("需要转义的字符串", JSON_UNESCAPED_UNICODE);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题