LINUX.ORG.RU

Парсинг ODF


0

0

Написал тут пару дней назад скриптец:

#!/usr/bin/perl -w

use strict;
use OpenOffice::OODoc::Text;
use OpenOffice::OODoc qw(odfLocalEncoding);

my $doc = OpenOffice::OODoc::Text->new(file => 'report.odt');
odfLocalEncoding('UTF-8');
print $doc->getCellValue(0,0,0),"\n";

А оно мне вместо русского текста знаки вопроса выводит(спросить чего хочет?).

Как это можно пролечить? Нужно из ООофисного документа выдирать содержание некоторых таблиц, желательно на чудном перле.

Ответ на: комментарий от sdio

use utf8; # <-- А так?

А так же, даже если полученый текст прогнать через utf8::decode

nikolayd
() автор топика

Причем если распаковать документ и заглянуть в content.xml - там вполне читабельный текст. Поэтому, я думаю, проблема не в настроках терминала.

nikolayd
() автор топика

Олол^WПофиксил!

odfLocalEncoding('UTF-8') надо вызывать до загрузки документа, павильный порядок:


odfLocalEncoding('UTF-8');
my $doc = OpenOffice::OODoc::Text->new(file => 'report.odt');

nikolayd
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.