2014-06-06 66 views
0

这是我的PHP文件(实际的文件是比较复杂的,但我发现它失败,即使是最简单的代码):无效的JSON()

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

这是我得到的回应:

[1,2,3,4,5] 

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

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

这让我开始思考,我检查了JSON字符串以十六进制编辑器,我发现奇怪的字符在文件的开头:

[1,2,3,4,5] 

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

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

我在Windows 8.1上使用XAMPP 1.8.3。我重新安装了XAMPP,以防万一出现问题,但json_enconde()函数仍然无法正常工作。

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

感谢

回答

2

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

+0

事实上,我的文件编码为UTF-8,没有BOM,但我注意到用require_once()调用的一个依赖文件被编码为带有BOM的UTF8。 – Davalom