Php 文件\u get\u内容返回带有额外意外字符的json

Php 文件\u get\u内容返回带有额外意外字符的json,php,json,Php,Json,我刚刚注意到我的代码有一个奇怪的结果: $data = @file_get_contents($url); //gets json format from API return $data; 它在第一个{前面和最后一个}后面返回一个随机字符 因此,我不能使用json\u decode(),因为json现在由于额外的字符而无效 我已经检查了实际的api url,它没有那些随机字符。 为什么会发生这种情况 注意:有时它甚至返回带有白色问号的黑钻石 我正在读Steam社区的API 当我试图找到

我刚刚注意到我的代码有一个奇怪的结果:

$data = @file_get_contents($url);  //gets json format from API
return $data;
它在第一个
{
前面和最后一个
}
后面返回一个随机字符
因此,我不能使用
json\u decode()
,因为json现在由于额外的字符而无效

我已经检查了实际的api url,它没有那些随机字符。
为什么会发生这种情况

注意:有时它甚至返回带有白色问号的黑钻石


我正在读Steam社区的API


当我试图找到导致问题的代码时,我临时做了一个修复

$data = substr($data, 1, -1);

似乎您有字符编码问题

api请求的响应标头:

Content-Type: application/json; charset=UTF-8 
Content-Encoding: gzip  

请看一看类似的问题。

哪个是API url?@madziikoy有一个401未经授权的错误。你检查过自己的文件中的UTF-8 BOM吗?@Wrikken没有,我想我甚至不知道那是什么。@WayneWhitty抱歉。那是错误的。现在就改了。情况似乎不是这样。