编辑: 只是做了一些快速检查由OP提供的字符串。大括号前面的小“字符”是UTF-8 B(yte)O(rder)M(ark) 0xEF 0xBB 0xBF
。我不知道为什么此字节序列显示为?此处。
本质上,您从中获取数据的系统将其发送为以UTF-8编码的数据,并在数据之前添加BOM。您应该先从字符串中删除前三个字节,然后再将其放入json_decode()(a substr($string, 3)
会这样做)。
string(62) "?{"action":"set","user":"123123123123","status":"OK"}"
^
|
This is the UTF-8 BOM
正如黑木风(Kuroki Kaze)所发现的那样,这个角色肯定是json_decode失败的原因。给定格式的字符串不是JSON格式的正确结构(请参阅RFC 4627)