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";

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

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

Re: Парсинг ODF

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

З.Ы. Об OpenOffice::OODoc ничего не знаю

sdio ★★★★★ ()
Ответ на: Re: Парсинг ODF от sdio

Re: Парсинг ODF

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

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

nikolayd ()

Re: Парсинг ODF

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

nikolayd ()

Re: Парсинг ODF

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

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


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

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