每个页面末尾的php特殊字符会导致ajax响应错误

每个页面末尾的php特殊字符会导致ajax响应错误,php,ajax,special-characters,Php,Ajax,Special Characters,我在每个PHP页面中都遇到了奇怪的问题,在每个响应的末尾都有一些特殊字符,与PHP脚本无关,我只使用页面测试它 他们是这样的 � 但这并不是404静态页面响应中的内容,我认为这与php配置版本有关,或者与Apache配置无关,但我找不到原因 糟糕的情况是,它会导致每个AJAX/Json响应失败,因为通过在每个响应的末尾添加特殊字符来更改响应数据的结构 是什么导致此问题以及如何解决此问题?根据,问题在于mod_gzip的问题: 这个问题是由mod_gzip和您不这样做的事实造成的 在你的文件中有一

我在每个PHP页面中都遇到了奇怪的问题,在每个响应的末尾都有一些特殊字符,与PHP脚本无关,我只使用
页面测试它

他们是这样的 �

但这并不是404静态页面响应中的内容,我认为这与php配置版本有关,或者与Apache配置无关,但我找不到原因

糟糕的情况是,它会导致每个AJAX/Json响应失败,因为通过在每个响应的末尾添加特殊字符来更改响应数据的结构

是什么导致此问题以及如何解决此问题?

根据,问题在于
mod_gzip
的问题:

这个问题是由mod_gzip和您不这样做的事实造成的 在你的文件中有一个最后的换行符。换行问题是由 在Unix系统上提供Windows编码的文件

这可能与Windows和Unix计算机之间的行尾差异有关。我真的回答了。具体而言:

不同的操作系统使用不同的字符来标记结束 第三行:

  • Unix/Linux/OS X使用LF(换行符'\n',0x0A)
  • OS X之前的Mac使用CR(回车“\r”,0x0D)
  • Windows/DOS使用CR+LF(回车符后跟换行符'\r\n',0x0D0A)
如果您在Linux服务器上,则可以安装,以将相关的PHP文件转换为格式正确的Linux文本文件

例如,如果您在Ubuntu上,只需运行以下命令即可安装:

sudo apt-get install dos2unix
然后您可以在文件上像这样运行它:

dos2unix some_kind_of_file.php

这将需要
某种类型的.php文件,并将其从Windows行结尾转换为Unix行结尾。更多详细信息。

可能是您文件中的UTF-8 BOM设置。因此,我应该从php.ini文件中删除BOM?可能是@hosein的重复项看看我的答案。这很可能是由于您拥有的文件及其来源的行尾与它们现在所在的服务器之间存在差异。BOM的意思是“字节顺序映射”,这是另一回事。我使用了以下命令wget--header=“accept encoding:gzip”,请参见:^_�^在每个响应的末尾,也就是在所有页面中,我使用了以下命令:find-类型f-execdos2unix{}{}\;要将所有文件转换为unix格式但不起作用,我使用以下命令wget--header=“接受编码:gzip”,请参阅:^_�^在每一个回复的结尾处,都会出现以下情况: