Re: xls & encoding
On 2005.05.17 at 14:15:46 +0400, Artem Chuprina wrote:
> >>Наверное, там в соответствующей BIFF-записи прописана неправильная
> >>кодировка. Можно найти в файле эту запись, и исправить там то что там
> >>написано на 1251. (оно всё в двоичном виде там). Можно почитать
> >>исходники xls2csv на тему того, как он определяет кодировку.
> >>
>
> E> не совсем в тему - созданные 1С xls неправильно открываются OO и Gnumeric
> E> (неверная кодировка). xls2cvs тоже если не указать ему "-s
> E> cp1251" неправильно отображает эти xls. При этом микрософтовский офис
> E> показывает их правильно.
>
> E> в чем дело и что можно с этим сделать? может быть правда сделать
> E> небольшую утилитку, позволяющую поправить кодировку в офисных
> E> файлах?
>
> Дело, как я понимаю, в том, что кодировка там не указывается, а успех MS
> Office происходит оттого, что когда кодировку не указали, он берет
> текущую системную OEM. Попробуй открыть тот же документ на английской
Только не OEM, а ANSI.
В принципе, мне НИКОГДА не попадались файлы Excel, где отсутствовала бы
BIFF-запись CODEPAGE. И попдались rtf-файлы на русском языке, где было
указано \ansicpg1252 (собственно, для этих файлов в catdoc и введено
правило, что -s в командной строке оверрайдит то, что написано в файле)
По идее, если в /etc/catdocrc source_charset прописан, то для файлов
БЕЗ указания кодировки должне использоваться указанный там charset без
дополнительных действий пользователя. Но указание кодировки в файле,
естественно, имеет приоритет над catdocrc.
В общем - надо разбираться - то ли там неправильный чарсет прописан,
то-ли вообще отсутствует запись codepage. В зависимости от этого правка
будет разной сложности. В первом - два байта подправить, во втором -
добавлять запись и корректировать длинны потоков в OLE directory.
Reply to: