После начала использования 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. Разработчикам отписал
Комментариев нет:
Отправить комментарий