XML AJAX响应开始时的奇怪字符?

时间:2011-01-27 17:54:42

标签: php jquery xml ajax json

我正在进行多次返回XML数据的AJAX调用。当我获取数据时,我的成功函数(在JQuery中)尝试将XML转换为JSON(使用插件)。我很快就被提醒为什么我不能假设我将从我的AJAX请求中获取VALID XML - 因为事实证明一些XML响应无效 - 导致JSON转换失败,脚本失败等。 ..

我的问题是:

  1. 检查的最佳方法是什么 AJAX响应的有效XML?要么, 我应该尝试JSON吗? 转换,然后快速检查是否 JSON对象有效吗?
  2. 在对XML进行故障排除时,我发现在XML响应的非常开始时有一些奇怪的字符。这是我的Firebug中的图像:
  3. Bad XML Response

    我是否应该尝试检测并删除这些字符的响应,或者我的编码可能有问题?

    任何帮助表示赞赏!如果需要更多信息,请告诉我们!

2 个答案:

答案 0 :(得分:5)

如果错误地将其解释为ISO-8859-1,则为UTF-8 byte-order mark

无法安全地剥离它,因为它只是一个更大问题的症状。您的内容编码为UTF-8。在某处您将其解码为ISO-8859-1。如果您尝试通过剥离BOM来隐藏问题,那么只要您开始使用非ASCII字符,就只能在线下设置更多问题。事情甚至看起来 sort-of 的唯一原因是因为ASCII是UTF-8和ISO-8859-1的共同子集。

答案 1 :(得分:1)

奇怪的字符是Byte Order Mark,实际上是有效的XML,在大多数情况下,你很可能只是将它们剥离而没有风险。