Есть PHPExcel 1.7.6 (пробовал даунгрейд до 1.7.0), есть файлик в формате xls (пример файла). Нужно сделать импорт.
Неизвестно в какой кодировке этот файл. Вот код:
header("Content-Type: text/html;charset=utf-8");
require_once '../Classes/PHPExcel/IOFactory.php';
$validLocale = PHPExcel_Settings::setLocale('ru');
$objPHPExcel = PHPExcel_IOFactory::load($newName);
echo mb_detect_encoding($objPHPExcel->getActiveSheet()->getCell('B13')->getValue());
echo $objPHPExcel->getActiveSheet()->getCell('B13')->getValue();
mb_detect_encoding выдает нам UTF-8, но при этом выводятся кракозябры.
Если пробую в браузере вручную подбирать кодировку, то что-то более-менее похожее выдает кодировка cp866:
├Б├Ы├Т├О├В├А├Я ├Т├Е├Х├Н├И├К├А -> ├Т├е├░├м├о├▒├╗
Но, как видите, помимо/вместо родных русских букв еще выдается какой-то мусор.
Соответственно при использовании iconv('cp866', 'utf-8', $str); результат тот же.
Естественно, в MS Excel и в OpenOffice.org Calc все открывается нормально.
Очень нужно этот и подобные файлики импортировать. Так что прошу помощи.
Если это глюк PHPExcel, то подскажите, пожалуйста, другой парсер xls файлов, способный вытаскивать картинки из этих файлов (это важно). Ну или пересохранять в xlsx с сохранением картинок, что бы можно было потом работать с xlsx как с zip-архивом.
Заранее спасибо.
PS: Файлов много и большого объема, поэтому ручками пересохранять в Calc не вариант.
UPDATE: Увидел, что вышел уже PHPExcel 1.7.7, скачал и попробовал с ним. Эффект тот же.