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

  • Unity-тюнинг

    Неожиданно обнаружил, что в последних релизах убунты можно указывать местоположение открываемых приложений. Отвечает за это все compiz, но делает…

  • Про Unity

    Спустя три с половиной месяца использования Unity - новой оболочки в Ubuntu, можно с уверенностью сказать, что с ней стало лучше, чем было без нее.…

  • Sbank coolness

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

  • 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