json内容类型开头的怪异角色

Nek*_*Nek 3 json character

我正在尝试从MySQL服务器返回读取的json内容.这应该很简单但是,有一个"怪异"的角色一直出现在内容的开头.

我有两页用于返回内容:

  1. kcb433.sytes.net/as/test.php?json=true&limit=6&input=d

    这个test.php来自Timothy Groves编写的脚本,它将数组转换为json输出

  2. http://kcb433.sytes.net/k.php?k=4

    这一个应该做同样的事情

我试着在jsonformatter.curiousconcept.com验证它,但只是第1页得到验证,第2页说它不包含JSON数据.

如果直接访问这两个页面都没有问题.然后有什么区别,为什么两者都没有得到验证?

然后我找到了这个页面jsonformat.com并尝试了同样的事情.第1页还可以,第2页不是,但令人惊讶的是,数据可以读取.乍看上去,

{"a":"b"}
Run Code Online (Sandbox Code Playgroud)

可能看起来不错,但前面有一个角色.

根据在线十六进制编辑器,这是上面的字符串的值(而不是9个值,有10个):

-- 7B 22 61 22 3A 22 62  22 7D
Run Code Online (Sandbox Code Playgroud)

第2页中回显json的代码是:

header("Content-Type: application/json");
echo "{\"a\":\"b\"}";
Run Code Online (Sandbox Code Playgroud)

YOU*_*YOU 6

您的k.php文件在开始时具有BOM签名,k.php使用UTF8再次保存而不使用BOM.

  • 你用哪个编辑器来编辑php文件?我注意到记事本没有"没有BOM的UTF-8"的选项.在Notepad ++中,您可以轻松地选择"UTF-8无BOM"编码. (2认同)