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

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



> Не надо. Это регулярное выражение есть внутри самого WordDecoder. Вы ему 
> просто спихиваете все заголовки, которые есть в письме, не разбираясь, что 
> там в них, а WordDecoder вернет уже плейнтекст в нужной вам кодировке.
а зачем же тогда писать отдельные функции на utf и cp1251 как было в
примере выше?

> 
> > идеально бы было конечно чтобы в случае с $parser->decode_headers(1);
> > хидеры возвращались бы приведенные к utf-8 (или к локали)
> > но это патчить надо MIME-tools
> 
> С WordDecoder'ом - это один цикл.
что-то я не въеду
читаю описалово на этот MIME-декодер и не въезжаю
туплю чтоли?

можно пример раскодирования хидера в _произвольной_ кодировке с
возвратом utf-8 строки?


> > а костыль расчитанный только на пару русских кодировок получается
> > хреновым, ибо как только появится третья русская кодировка в хидере или
> > четвертая нерусская и кранты :(
> > все таблицы не напишешь в виде функций
> 
> Покопайтесь в кишках WordDecoder. Может там есть возможность обрабатывать 
> кодировки не по табличке, а прямо передавать в Text::Iconv, чтобы он на 
> выходе уже UTF-8 делал.
ну вот я так примерно и написал:
1. определяю кодировку из регвыражения выше
2. раскодирую B или Q в plain-text
3. делаю iconv раскодированного в utf
4. делаю замену регвыражения в полученное из п.3
5. если регвыражение все еще есть, то п.1 иначе конец

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

ща попробую



Reply to: