这种json字符串PHP如何解析?
{"response_time":8999,"object":"http://10.1.17.61:80/v1/verify"},{"response_time":17000,"object":"http://10.1.17.61:80/v1/verify"}],"err_query":[],"resource_type":8,"request_count":6870,"response_time_total":7152990,"response_time":{"start_0_end_1000000":6870},"resource_name":"http://[rpc]token-internal.user.wxsqidc.cn/[10.1.17.61:80]/v1/verify","http_status_code":{"200":6870},"cross_machine_room":"\xE5\xB9\xBF\xE5\xB7\x9E\xE4\xB8\xAD\xE8\x83\xBD-->\xE5\xB9\xBF\xE5\xB7\x9E\xE4\xB8\xAD\xE8\x83\xBD"}
就是字符串里带了很多 \x**的东西,导致 PHPjson_decode失败,我只知道 \x5C 就是反斜杠 " \x22就是单个双引号" 那么其它呢,如何解决?
---后面补充 :
查到了,\x** 的东西就是 16进制字符,有一个在线转码网站,复制进去转出来是乱码来的,字符内容是其它人上报过来的,叫他们上报进规范处理可能可能使自己工作比较被动,那么,自己就无法处理了吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
在加密时单独对这个属性使用 urlencode 试试
将 xE5xB9xBFxE5xB7x9ExE4xB8xADxE8x83xBD 里的x去掉,然后用 hex2bin($str) 可以将16进制转换为字符串。
无法decode的问题可以用str_replace 将x 替换为 \x或者空,就可以decode了,然后再对16进制字符进行上述处理就可以得到中文 "广州中能"
要求这个接口提供标准的json数据
使用以下函数替换一下
你的json数据都没复制对吧,数据明显有问题,我只截取了16进制那块,代码如下:
感觉以个各位大神帮助。其实问题我找到了,也解决了。
并不是上述 \x** 的的问题,PHP是有能力对这些字符转成正常字符的,我的问题是出在一些非utf8范围的字符上,
我用网上找到的一个方法,把非UTF8范围的字符去掉就OK了。
好东西不敢私藏,贴上与大家分享
出处是https://magp.ie/2011/01/06/re...