Есть скрипт что пытается определить кодировку и сменить на WINDOWS-1251.
Вот основной кусок:
$from = mb_detect_encoding($cell,"auto");
print_r($from);echo"\n";
$cell = iconv( $from, "WINDOWS-1251//IGNORE", $cell );
Кто догадался, так происходит с каждой ячейкой одного из xls файла.
В общем, вторая строка с принтом, показывает, что ASCII.
По результату видно брюкозабры, что свидетельствует о не правильном определение кодировки и дальнейших действий.
Я долго, возможно не достаточно, гуглил, и пришел к проверки этих двух строчек:
print_r(mb_list_encodings());
print_r(mb_detect_order());
Вторая отдает скромненький массивчик:
Array
(
[0] => ASCII
[1] => UTF-8
)
Первая значительно больше.
Причем в зависимости от версии PHP список чуть-чуть меняется.
Сперва грешил на это, но потом открыл файл в OpenOffice, который даже не предложил выбрать кодировки.
Установил какое расширение, где выбрал латин-1 => кирилица, и все гуд.
То есть latin-1, подумал я, но он есть, как понял, в любой версии.
Хотел первой строчкой получать список и подсовывать его в mb_detect_encoding, но там еще есть какой то порядок.
В общем я запутался уже...
Подскажите как нормально определить кодировку?
Или дополните по моему сабжу, если не получилось полной каши.
Спасибо.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости