У меня есть два сайта, которые я разрабатываю (на PHP). Они используют идентичный код для экспорта XLS (с использованием PEAR excel) и работают на одном локальном сервере. Чтобы исключить проблему с фактическими данными в xls, я просто вывожу файл без данных на данный момент.
Когда я экспортирую с сайта A и сохраняю файл, он отображается как «ANSI», закодированный в Notepad ++. Этот файл правильно открывается в Excel.
Когда я экспортирую с сайта B, файл отображается в кодировке «UTF-8», файл не открывается в Excel. Если я конвертирую файл в ANSI или UTF-8 без спецификации в Textpad ++, он отлично открывается в Excel.
Такая же разница в кодировке присутствует между сайтами A и B, когда я сохраняю произвольную страницу на сайте, поэтому я думаю, что это может быть более фундаментальным, чем просто создание файла Excel (такая же кодировка при экспорте форматов CSV / ODS). Я сравнил заголовки http между сайтами A и B во время экспорта, они функционально идентичны. Явное добавление Charset = ISO-8859-1 в заголовок не имеет значения. Виртуальные хосты apache также функционально идентичны между сайтами. Оба сайта используют идентичные кодировки символов в своих базах данных (но поскольку я сейчас не экспортирую никаких данных, это не имеет значения).
Что еще могло быть причиной этого, чего я не объяснил?
Спасибо!
ОБНОВЛЕНИЕ
Генерация excel - отвлекающий маневр, я удалил все это и просто вывел заголовок загрузки и тестовую строку. При сохранении файл по-прежнему кодируется по-разному для разных сайтов. Код, который генерирует файл загрузки, кажется идентичным, когда я сравниваю различные файлы ...
Мне не удалось повторить проблему, создав упрощенный тестовый пример. Когда я попробовал, оба сайта выводят файлы, которые сохраняются как ANSI - я не понимаю, что еще может происходить.