[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: добавим офтопега



On Tuesday 18 July 2006 15:56, Dmitry E. Oboukhov wrote:

> > > ну вот я так примерно и написал:
> > > 1. определяю кодировку из регвыражения выше
> > > 2. раскодирую B или Q в plain-text
> > > 3. делаю iconv раскодированного в utf
> > > 4. делаю замену регвыражения в полученное из п.3
> > > 5. если регвыражение все еще есть, то п.1 иначе конец
> >
> > И это правильно. Так, в общем случае, и надо делать.
> > Чем же вам это решение не  понравилось?
>
> тем что такая куча библиотек работы со строками/заголовками итп
> а вот как понадобился просто раскодированный заголовок, так пришлось
> руками писать :(

Может WordDecoder пропатчить и закоммитить?

>
> > > > PS. Теперь у меня еще вопрос. Про Text::Iconv. Есть ли в нем
> > > > возможность, чтобы при обнаружении символов, отсутствующих в целевой
> > > > кодировке, он пропускал эти символы (или заменял их на вопросик
> > > > какой-нибудь)? У iconv(1) такая опция есть (omit invalid characters),
> > > > а вот Text::Iconv сразу при этом спотыкается и возвращает undef.
> > >
> > > Text::Iconv->raise_error(0);
> > > разве не так делает? или оно просто скипает?
> >
> > raise_error(1) делает die, raise_error(0) возвращает undef
>
> он undef на всю строку чтоли возвращает?
> деже если там один символ кривой?

aml@amlnotebook:~$ cat test.pl
#!/usr/bin/perl -w

use strict;
use Text::Iconv;

Text::Iconv->raise_error(0);
my $conv = Text::Iconv->new('KOI8-R', 'LATIN1');
print $conv->convert('ABC'), "\n";
print $conv->convert('ABC АБВ'), "\n";
aml@amlnotebook:~$ perl test.pl
ABC
Use of uninitialized value in print at test.pl line 9.

> мдя, опять неудобняк, надо пересматривать мой код где этот iconv юзается

Угу.

-- 
Best regards. Alexander Lourier. http://aml.rulezz.ru

Attachment: pgp8u8WnBTCqk.pgp
Description: PGP signature


Reply to: