За последние 24 часа нас посетил 20251 программист и 1080 роботов. Сейчас ищут 742 программиста ...

Кракозябры в CSV после записи

Тема в разделе "PHP и базы данных", создана пользователем mainprofilemail, 24 май 2020.

Метки:
  1. mainprofilemail

    mainprofilemail Активный пользователь

    С нами с:
    14 апр 2018
    Сообщения:
    101
    Симпатии:
    2
    Записываю массив данных в csv файл. Запись проходит успешно, данные беру из базы в кодировке utf8 но вот после записи кодировка желает ждать лучшего. Вместо русскоязычного алфавита вижу кракозябры.

    Как задать кодировку чтобы все работало корректно. И да кстати, дата в формате 2020-05-24 тоже отображается не корректно, а именно #####. После ручного изменения ширины ячейки дата появляется, но вот не хочется ее менять каждый раз. Если ли возможность задать ширину ячейки перед или вовремя записи?

    Спасибо.
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    Наверное идёт разговор об импорте csv программой excel?
    99% что файл и дата и все записано верно.
    Проблема у автора в импорте данного файла. Эксель по умолчанию оперирует в win1251 кодировке, так что вариантов несколько.
    1. Оставить все как есть. Но открывать csv путем импорта. Там тогда на стадии импорта можно задать нужную кодировку, а для нужных столбцов задать нужный тип (это про даты)
    2. При записи в csv сразу самому конвертить в win1251
    3. Записывать сразу в xls/xlsx с помощью библиотек. Там можно и ширину и типы ячееек, даже цвета и оформление

    По поводу csv - это простейший формат для импорта экспорта - по сути текст с разделителями. Поэтому никакой речи о доп функциях типа задания типа, ширины какой то и прочего идти не может см а 3
     
  3. mainprofilemail

    mainprofilemail Активный пользователь

    С нами с:
    14 апр 2018
    Сообщения:
    101
    Симпатии:
    2
    Создаю файл на сайте, использовать библиотеки дополнительные желания нету. Нужно просто чтобы все выводилось корректно сразу при обычном открытии файла, дополнительных возможностей не нужно. Только средствами php сделать корректную запись в файл.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    П 2. Сохраняйте в win1251, например конвертировать текст при записи через iconv
     
  5. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
  6. mainprofilemail

    mainprofilemail Активный пользователь

    С нами с:
    14 апр 2018
    Сообщения:
    101
    Симпатии:
    2