Бортовой журнал Ктулху

Ошибка Yii2 Malformed UTF-8 characters, possibly incorrectly encoded

Выходной день был немного подпорчен пришедшим в корпоративный чат сообщением о непонятной ошибке "Malformed UTF-8 characters, possibly incorrectly encoded". То есть, не то чтобы сама ошибка была непонятной, скорее причина ее происхождения.

Начав разбираться, почти сразу определил что ошибка проявляется на всех страницах где используется ActiveForm и вскоре нашел файл BaseJson где выбрасывается исключение с таким текстом.

screenshot 2019 08 20 10 50 41

Здесь видно, что при опции enableClientValidation = true (использование валидации) будет использоваться компонента Json.

Если пройти в нее, дойдем до BaseJson где происходит перекодировка в json и происходит ошибка в результате неверной кодировки.

screenshot 2019 08 20 10 51 23

В метод handleJsonError я добавил самопальный обработчик ошибок - отправку на email при выпадании в исключение но так и не дождался уведомлений.

В результате коммита все как-то исправилось и заработало. Так что, первоначальное подозрение на неверную кодировку файла пришлось сделать основной версией причины произошедшего.

А способ решения проблемы перезаписью файла на сервере оказался тупиковым, поскольку проблему это не решило.

Решение проблемы: файл BaseJson.php должен быть в кодировке UTF-8