我正在尝试使用以下行从post请求中获取数据:
$data = file_get_contents('php://input');
字符串
json字符串可能是:{"test" : "test one \xe0 "}
问题是,当我试着做一个json_decode($data)
,我得到null
,通过var_dump()
和$data
,我看到一些像\xe0 \xe7a
这样的字符。
发送的数据是utf-8格式的。我也使用utf8_decode($data)
,但运气不好。有人能解释一下我错过了什么或者如何解决这个问题吗?
我需要将无效的json转换为:
$data = '{"test" : "test one \xe0 "}';
型
收件人:
$data = '{"test" : "test one à "}';
型
2条答案
按热度按时间icnyk63a1#
修复JSON的一种方法是将无效的
\xNN
序列替换为有效的\u00NN
序列:字符串
输出量:
型
ubbxdtey2#
使用字符串函数对json字符串进行突变总是需要谨慎的,因为假阳性替换通常很容易损坏有效负载。也就是说,这里有一个脚本试图纠正无效的json字符串。
产品编号:(Demo)
字符串
输出量:
型
如果这有已知的缺陷,请在下面留下评论,我会奋进克服这个问题,当我有时间。
相关答案:Replace all hex sequences with ascii characters