Есть похожий случай
https://moodle.org/mod/forum/discuss.php?d=441223
Я думаю, что это проблема локализации moodle для windows платформы.
Думаю, что проблема в этом:
(1)
if ($CFG->ostype == 'WINDOWS') {
$calendartype = \core_calendar\type_factory::get_calendar_instance();
$localewincharset = $calendartype->locale_win_charset();
}
(2)
if ($localewincharset) {
$datestring = core_text::convert($datestring, $localewincharset, 'utf-8');
}
(3)
public function locale_win_charset() {
return get_string('localewincharset', 'langconfig');
}
Нужно посмотреть что было в 4.0 и что стало в 4.1 для строки localewincharset . Перевод находится в файле langconfig.php
Я думаю, что в 4.1 'localewincharset' сделали 'utf-8' и вы получили лишнюю перекодировку utf-8 в utf-8
IMHO ''localewincharset' нужно оставить пустым.
Это явный косяк программистов, которые перекодируют текст даты даже если localewincharset utf-8
Было бы более корректно в moodle/lib/moodlelib.php функции date_format_string() сделать
if ($localewincharset && $localewincharset != 'utf-8' ) {
$datestring = core_text::convert($datestring, $localewincharset, 'utf-8');
}