【问题标题】:ob_start("ob_gzhandler") gives Content Encoding Errorob_start("ob_gzhandler") 给出内容编码错误
【发布时间】:2013-10-31 09:32:58
【问题描述】:

我想为我的移动版网站使用 gzip。我尝试在我的 php 文件顶部添加以下行

ob_start("ob_gzhandler");

但它给了我以下错误。

我一直在搜索并尝试多种方法,但没有任何方法可以压缩页面。如何做到这一点?

【问题讨论】:

  • 您的 PHP 运行时是否安装了 ob_gzhandler?您的浏览器是否接受 gzip 压缩的内容?你可以通过$_SERVER['HTTP_ACCEPT_ENCODING']查看它
  • 对您的两个问题都同意
  • 您可能在致电ob_start("ob_gzhandler"); 之前发送了解压缩的内容?混合的压缩/解压缩内容可能会发出此错误。也看看这里:stackoverflow.com/a/6403260/1652031
  • 尝试使用不同的浏览器以确保它适用于其他浏览器。
  • Check this answerthis post,可能会有所帮助。

标签: php


【解决方案1】:

也许你和我有同样的问题,实际上有 一个 utf-8 文件,里面有一个 UTF-8 BOM *.
我认为 gzip 与 UTF-8 BOM 结合会产生编码问题。

注意事项:

  • 并非所有编辑器都能显示 BOM 是否存在。我实际上必须使用另一个编辑器 Notepad++ 来实现那里有一个 BOM,并通过“在没有 BOM 的情况下转换为 utf-8”将其删除,然后保存文件。 (也先在我原来的编辑器中关闭它。) 但您也可以将编辑器设置为不包含 BOM。
  • 可能只有在开启 php 错误报告时才会发生这种情况

* 更多关于 UTF BOM:

【讨论】:

  • 完美。我也使用记事本++。更改为 在没有 BOM 的情况下以 UTF-8 编码 使代码 ob_start("ob_gzhandler"); 工作时不再出现错误。
  • 在使用 Eclipse 时遇到了类似的 BOM 问题。您看不到它,必须使用另一个编辑器将其删除,但您可以检查是否插入了 BOM - 转到文件-> 属性并查看“文本文件编码”框下是否提到了 BOM
【解决方案2】:

可能您正在使用 Apache 的 gzip 压缩来压缩 js/css 文件,再次使用 ob_start('ob_gzhandler') 将压缩该压缩,而浏览器将无法处理。

check here可能会对你有所帮助。

【讨论】:

    【解决方案3】:

    只需使用双引号作为"ob_start('ob_gzhandler')"; 即可避免内容编码错误

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-18
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      相关资源
      最近更新 更多