@victorib_us

Как исправить кодировку в excel файле?

Делается выгрузка товаров в excel файл, использовать библиотеки типа PHPExcel нельзя.
Просто:
$table - html таблица.

$fp = fopen("excel/file.xls", "w");
fwrite($fp, $table);
fclose($fp);

Все работает так как нужно, но есть среди всей выгружаемой информации ссылки на картинки, названия этих картинок были зашифрованы и имеют вид типа 51d7fabe-718c-4c28-9874-209ca1683ba0.jpg И как только в файл попадают вот такие названия фото, в файле слитает кодировка, и вместо русских букв разные каракули типа Шина
Я в упор не понимаю как это может влиять, но что есть, то есть.
Как с этим бороться ?
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
@rPman
Укажите в html файле в заголовке head тег <meta charset="utf-8"> (или в какой у вас кодировке файл на самом деле).
p.s. вероятность нарваться на 100500 проблем с таким 'методом создания' файла эксель - очень высокая.
Сделайте как надо (генерируйте файл по его формату, используя для этого правильные инструменты), не создавайте себе и другим проблем в будущем.

p.p.s. начиная примерно с 2005 года, формат файлов excell - xlsx. Это на самом деле zip архив с файлами, многие из которых текстовые xml, работать с которыми очень даже просто без библиотек.
В подавляющем большинстве случаев вам достаточно создать шаблонный документ и редактировать своей программой один файл, описывающий данные. Поверьте, он очень простой. Проблемы начинаются, когда у вас формулы, бинарные файлы, внешние ссылки на данные и т.п.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега PHP
Формируйте XLS-файл корректно в соответствии со спецификацией ( https://interoperability.blob.core.windows.net/fil... ) с помощью библиотеки или без оной.
Сейчас вы просто делаете .html-файл, но задаете ему некорректное расширение .xls
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Zelo Москва
от 130 000 руб.
Digital Clouds Новосибирск
от 60 000 руб.
АКМЭ сервис Санкт-Петербург
от 100 000 руб.