После начала использования GLPI в качестве Helpdesk всплыл весьма неприятный баг: часть обращений (тикетов) импортировались в неправильной кодировке. С первого взгляда «плохие» письма ничем не выделялись.
Тут нужно отметить, что мы используем Gmail-аккаунт. Только после отладки, стало понятно, что в «плохом» случае Gmail отдаёт тему письма в KOI8-R, а тело в UTF-8. В этой ситуации в коде GLPI происходит вызов iconv с параметрами ('KOI8-R' -> 'UTF-8').
Что же, воспроизведённый баг - половина патча. Приведённый ниже патч проработал у меня полтора месяца, проблем не выявлено.
--- inc/mailcollector.class.php.orig 2012-01-30 00:08:25.000000000 +0400 +++ inc/mailcollector.class.php 2012-01-30 01:29:35.000000000 +0400 @@ -955,6 +955,11 @@ $text = mb_convert_encoding($text, 'utf-8',$param->value); $this->body_converted=true; } + if ((strtoupper($param->attribute)=='CHARSET') + && function_exists('mb_convert_encoding') + && strtoupper($param->value) == 'UTF-8') { + $this->body_converted=true; + } } } return $text;
P.S. Разработчикам отписал
Комментариев нет:
Отправить комментарий