来自json_encode()的json无效

时间:2014-06-06 21:45:00

标签: javascript php jquery ajax json

这是我的PHP文件(实际文件更复杂,但我发现即使使用最简单的代码也会失败):

<?php
$salida = array(1,2,3,4,5);
echo json_encode($salida);
?>

这是我得到的回复:

[1,2,3,4,5]

似乎有效,但事实并非如此。当我将它传递给jQuery.parseJSON()函数时,我的AJAX应用程序说'Unexpected token'。当我将其粘贴到JSONLint网页时,返回相同的错误。

我注意到如果删除第一个字符并再次输入,JSON就会生效。

这让我思考,我用HEX编辑器检查了JSON字符串,我在文件的开头找到了奇怪的字符:

[1,2,3,4,5] 

这很奇怪,因为该功能在几天前​​工作正常,并且该文件尚未修改。

<?php>标记位于文件的开头,并且编码为utf-8。

我在Windows 8.1上使用XAMPP 1.8.3。我重新安装了XAMPP,万一有些东西坏了,但json_enconde()功能仍无效。

任何人都知道如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:2)

您需要在没有UTF8 BOM(字节顺序标记)的情况下保存PHP文件(以及它包含的所有文件)。如何做到这一点取决于你的编辑。请注意,使用UTF8本身非常好并且鼓励使用。没有BOM。