神秘的不间断线%a0打破JSON来自何处?

时间:2016-11-22 13:58:23

标签: php json ajax wordpress

我放弃尝试自己解决这个问题,我需要帮助!我一直在研究一个WordPress项目,它有一些与AJAX一起使用的功能。在将PHP更新为5.6(作为最新的WordPress请求)之后,我的许多AJAX函数都被破坏了,因为它的响应中出现了一个神秘的不间断行字符%a0并打破了JSON结构。

回复来自json_encode()

我得到的JSON响应:

{
     "term_id":75,
     "name":"iPhone
3G",
     "slug":"iphone-3g"
},

调查:

经过几个小时的阅读后,我尝试了几种适用于其他人的解决方案,但它们对我不起作用。

  • 关闭php.ini中的magic_quotes_gpc
  • 在服务器端使用preg_replace转义字符串,以获取所有不同的不间断/换行符号
  • 使用str.replace
  • 在客户端转义字符串

我检查了数据库,该条目没有%a0,有一个空格%20,这是正确的。我还注意到,如果删除该空格,则会发生下一个空格为%20的项目。

我还应该提一下,上面这个iPhone 3G的例子并不是唯一的。在这个项目之后,清除了一些项目(即使是那些空格为%20的项目),但之后它会再次发生在其他项目上,同样的情况。

因此,似乎PHP经常用%20替换%a0

我该怎么办?

0 个答案:

没有答案