can3p (can3p) wrote,
can3p
can3p

Импорт utf-8 csv-файлов в Excel

Возникла задача открыть csv экселем, а тот вместо добротного уникода показал мусор. Поиски вывели на тред, где описано приемлемое решение задачи:
1. Конвертируем в UTF-16.
2. Добавляем BOM в начало файла.
3. В качестве разделителей используем символы табуляции.

Если говорить на php, то выдача файла должна происходить следующим образом:

header("Cache-Control: must-revalidate");
header("Pragma: must-revalidate");
header("Content-type: application/vnd.ms-excel; charset=URF-16LE");
header("Content-disposition: attachment; filename=file.csv");
 
echo chr( 0xFF ) . chr( 0xFE ) . mb_convert_encoding( $content, 'UTF-16LE', 'UTF-8' );

Надеюсь, этот пост сэкономит кому-нибудь пару сотен нейронов.


Оригинал: http://blog.dpetroff.ru/tech/excel_csv_unicode
Tags: csv, excel, php, tips, unicode
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments