我正在进行多个返回 XML 数据的 AJAX 调用。当我取回数据时,我的成功函数(在 JQuery 中)尝试将 XML 转换为 JSON(使用插件)。我很快就被提醒为什么我不能假设我会从 AJAX 请求中获取有效的 XML —— 因为事实证明一些 XML 响应是无效的 —— 导致 JSON 转换失败、脚本失败等。 ..
我的问题是:
- 检查的最佳方法是什么 AJAX 响应上的 XML 有效吗?或者, 我应该尝试 JSON 转换,然后快速检查是否 JSON 对象有效吗?
- 在对 XML 进行故障排除时,我发现 XML 响应的开头有一些奇怪的字符。这是我的 Firebug 中的图像:
我应该尝试检测并删除这些字符的响应,还是我的编码可能有问题?
感谢任何帮助!如果需要更多信息,请告诉我!
最佳答案
这是 UTF-8 byte-order mark当错误地解释为 ISO-8859-1 时。
您无法安全地删除它,因为它只是更大问题的症状。您的内容被编码为 UTF-8。在此过程中,您将其解码为 ISO-8859-1。如果您尝试通过剥离 BOM 来隐藏问题,那么一旦开始使用非 ASCII 字符,您只会遇到更多问题。事情看起来有点正确的唯一原因是 ASCII 是 UTF-8 和 ISO-8859-1 的公共(public)子集。
关于php - XML AJAX 响应开头有奇怪的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4819973/