Скрипт для конвертирования fb2 в rtf у кого-нибудь работает?

Грибовский скрипт нормально не хочет работать...
Выдается сообщение

Цитата:

...
Using XML::LibXSLT..
Cannot decode string with wide characters at /usr/lib/perl5/vendor_perl/i386-linux/Encode.pm line 160.

Это уже несколько раз обсуждалось на заебуке (например, http://the-ebook.org/forum/viewtopic.php?t=7959 ), но мне сейчас не хочется глубоко в перловый код влезать, может быть если только завтра).

Может, у кого-то что похожее было?

Комментарии

Аватар пользователя Mylnicoff

Нормально работает. Но с некоторыми файлами (м.б. невалидными) не работает. Примерно 2 - 3 на сотню.

Mylnicoff написал:
Нормально работает. Но с некоторыми файлами (м.б. невалидными) не работает. Примерно 2 - 3 на сотню.

Я так и не смог заставить его работать. А хотелось бы иметь в числе форматов rtf.
Аватар пользователя Mylnicoff

Я имел в виду FB2 to Any. М.б. тут речь идет о чем-то другом, а я не врубился.

larin написал:
Я так и не смог заставить его работать. А хотелось бы иметь в числе форматов rtf.

А lrf (сонькин формат) в числе форматов иметь не хочешь? (сам думаю, что нет - у тебя же V3, вроде) ;-) obelix выкатил недавно консольный fb2lrf.

Там в FB2ToTXT.pm нужно убрать Encode::decode

- print RTFILE Encode::encode($ResEnc,Encode::decode("UTF8",TransformXML($CleanXML,$XslFile,$NeedClean))) or die "Error writing to rtf file:\n$!";
+ print RTFILE Encode::encode($ResEnc,TransformXML($CleanXML,$XslFile,$NeedClean)) or die "Error writing to rtf file:\n$!";

Патч

Спасибо, заработал теперь, это я вчера ночью не сообразил.
Но там еще есть не совсем "такое" место -- это где замена символов производится. Мне кажется, что можно и лучше сделать (в смысле, какие символы менять, а какие нет), чем так:

"\t"   => "\\tab ",     # Tabs (altho theoretically raw \t's might be okay)
   "\f"   => "\n\\page\n", # Formfeed
   "-"    => "\\_",        # Turn plaintext '-' into a non-breaking hyphen
                           #   I /think/ that's for the best.
   "\xA0" => "\\~",        # \xA0 is Latin-1/Unicode non-breaking space
   "\xAD" => "\\-",        # \xAD is Latin-1/Unicode soft (optional) hyphen
         '«'            => '«',
         '»'            => '»',
         '–'            => '\endash',
         '—'            => '\endash'

В общем, по вкусу подправить можно, но работает очень даже нормально...

X