вторник, 29 июля 2014 г.

Excel, CSV и UTF8 - вместе веселей!

Хотите, чтобы Excel открывал данные CSV в UTF-8 правильно (а не кракозябры)?
Используйте UTF-8 BOM!


Для этого нужно добавить всего лишь 3 байта (hex EF BB BF) в начале файла.
В противном случае Excel интерпретирует данные в кодировке системы (по умолчанию windows-1251).

На языке Python это выглядит так:

import codecs

...
fp = open('filename.csv','w')
fp.write(codecs.BOM_UTF8)
...

P.S. - Кстати, это единственный выход, если в колонках есть разрывы строк (даже если всё у вас экранируется строго по формату CSV). При неправильной кодировке Excel "ломает" такие строки и я не нашел способа по-другому это исправить.

Комментариев нет:

Отправить комментарий