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

  • Sbank coolness

    Как известно, у многих банков интернет-клиенты привязаны к платформоспецифиным технологиям, даже если это написано на java, и, чтобы работать под…

  • Zend Framework && FirePHP || Я люблю firefox

    Обновилось расширение firephp, благодаря этому сделал очень приятное открытие. Во-первых - обновился Zend Framework, во-вторых там появились родные…

  • (no subject)

    Надо добыть сведения о проигрываемой музыке из banshee. Вариант на sed: banshee-1 --query-artist --query-title | sed '/artist/{N;s/\n//;s/artist:\…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments