Кто-нибудь знает, как найти утечку, которая вызывает эту «ошибку кодирования содержимого» с помощью $config['compress_output'] = true в CodeIgniter? 
  Я пытаюсь отладить эту ошибку в течение нескольких дней, но я не могу найти, где находится утечка.  LogLevel debug но я не вижу никакой информации в журнале при возникновении этой ошибки. 
Итак, любые идеи, как отлаживать это?
  Я действительно не хочу отключать функцию compress_output , я просто хочу посмотреть, как я могу отслеживать, где возникает ошибка 
Я снова и снова просматривал, чтобы увидеть, есть ли какие-либо выходные данные в контроллерах … и их нет, поэтому некоторые из них должны быть вызваны ошибкой. Нет моделей / базы данных, просто контроллеров, библиотек, помощников и просмотров
  Эта проблема начинается с буферизации вывода.  Проверка переменной конфигурации находится в system/core/Output.php в _display() .  Он запускает буферизацию gzipped после того, как много кода уже запущено.  Это приводит к тому, что выход будет происходить до начала буферизации. 
  Если параметр compress_output равен false это не имеет значения, потому что ничего не закодировано.  С его значением true вы получаете смешанный контент.  Некоторый вывод кодируется, а некоторые не приводят к ошибке сжатия. 
Существует два решения:
  1) Вы можете оставить параметр compress_output ob_start('ob_gzhandler'); false и добавить ob_start('ob_gzhandler');  вверху вашего файла index.php.  Это гарантирует, что все выходные данные всегда будут сжаты, включая ошибки. 
  2) Другое решение – добавить ob_flush();  перед ob_start('ob_gzhandler');  в system/Output.php .  Это будет выводить gzip, когда ошибок нет, и обслуживать вас в незакодированном виде, когда есть ошибки. 
Я думаю, что 2 – лучшее решение и должно быть реализовано командой CodeIgniter. Но если вы не хотите гадоваться с системным кодом (изменения будут уходить при обновлении), то 1 – лучшее решение для вас.
Любая ошибка в PHP нарушит сжатие.
Чтобы проверить это, в index.php измените:
 error_reporting(E_ALL); 
в
 error_reporting(E_ALL ^ E_NOTICE); 
Не эхо / печать для вывода на выходе контроллера.
Не используйте «?>» В конце файла контроллера.
Я надеюсь, что это помогает.
Обновить:
Чтобы проверить, пуст ли пуст до начала буферизации, вы можете открыть core / Output.php и добавить
 ob_flush(); 
до
 ob_start('ob_gzhandler'); 
Если есть даже пробел или пустая строка, сжатие завершится неудачно. ( проверьте источник страницы из браузера ). Это происходит потому, что с $ config ['compress_output'] = true выполняется ob_start ('ob_gzhandler') (строка 379 в Output.php), что приведет к предупреждению « Невозможно изменить информацию заголовка – Заголовки уже отправлены … ». Это предупреждение является причиной отказа сжатия.
Таким образом, любое эхо вне класса Output ( включая json-выход ) отправляет заголовки клиенту, что приведет к предупреждению « Невозможно изменить информацию заголовка – Заголовки уже отправлены … », что вызовет « ошибку кодирования содержимого ».
  У меня такая же проблема.  После поиска я обнаружил, что мой контроллер имеет ?> конце файла.  Поэтому я удалил его, и он отлично работает.  Вот ссылка для более подробной информации. 
Поместив следующую строку в config.php:
 $config['compress_output'] = FALSE; 
  Решает.  Проблема в моем случае состояла в том, что я отправил сообщение, но он не признал функцию FILLCATEGORIAS .  Всем путем изменения $ config [ 'compress_output'] = FALSE;  решил это. 
ЭТА проблема возникла, когда мы отправляем данные с помощью запроса POST:
Не удалось загрузить ресурс: net :: ERR_CONTENT_DECODING_FAILED
 <script type="text/javascript"> $(document).ready(function() { $("#idEmpresa").change(function() { $("#idEmpresa option:selected").each(function() { id = $('#idEmpresa').val(); $.post("<?php echo base_url();?>Admin/fillCategorias", { idEmpresa : id }, function(data) { $("#idCategoria").html(data); }); }); }); }); </script> 
Это может быть длинный снимок, но если вы эхо / печатаете базу данных напрямую с вашего контроллера, а не отправляете его в модель, вы, скорее всего, получите сообщения об ошибках, связанные с буферизацией вывода. Вы эхом отзываетесь от своего контроллера?