ActiveField переодически выдает ошибку Malformed UTF-8 characters, possibly incorrectly encoded

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
web321
Сообщения: 3
Зарегистрирован: 2016.03.25, 20:59

ActiveField переодически выдает ошибку Malformed UTF-8 characters, possibly incorrectly encoded

Сообщение web321 »

Здравствуйте,
Помогите пожалуйста разобраться с причинной возникновения этой ошибки.
Иногда эта ошибка может выдаваться продолжительного времени, иногда всего несколько минут и сайт снова начинает работать
Ниже лог
Exception 'yii\base\InvalidParamException' with message 'Malformed UTF-8 characters, possibly incorrectly encoded.'

in /framework/basic/vendor/yiisoft/yii2/helpers/BaseJson.php:121

Stack trace:
#0 /framework/basic/vendor/yiisoft/yii2/helpers/BaseJson.php(61): yii\helpers\BaseJson::handleJsonError(5)
#1 /framework/basic/vendor/yiisoft/yii2/helpers/BaseJson.php(79): yii\helpers\BaseJson::encode(Array, 271)
#2 /framework/basic/vendor/yiisoft/yii2/validators/RegularExpressionValidator.php(83): yii\helpers\BaseJson::htmlEncode(Array)
#3 /framework/basic/vendor/yiisoft/yii2/widgets/ActiveField.php(709): yii\validators\RegularExpressionValidator->clientValidateAttribute(Object(app\models\CallmeFormModel), 'name', Object(yii\web\View))
#4 /framework/basic/vendor/yiisoft/yii2/widgets/ActiveField.php(216): yii\widgets\ActiveField->getClientOptions()
#5 /framework/basic/vendor/yiisoft/yii2/widgets/ActiveField.php(206): yii\widgets\ActiveField->begin()
#6 /framework/basic/vendor/yiisoft/yii2-bootstrap/ActiveField.php(187): yii\widgets\ActiveField->render(NULL)
#7 /framework/basic/vendor/yiisoft/yii2/widgets/ActiveField.php(162): yii\bootstrap\ActiveField->render()
#8 /framework/basic/views/layouts/basic.php(261): yii\widgets\ActiveField->__toString()
#9 /framework/basic/vendor/yiisoft/yii2/base/View.php(325): require('/home/users1/k/...')
#10 /framework/basic/vendor/yiisoft/yii2/base/View.php(247): yii\base\View->renderPhpFile('/home/users1/k/...', Array)
#11 /framework/basic/vendor/yiisoft/yii2/base/Controller.php(392): yii\base\View->renderFile('/home/users1/k/...', Array, Object(app\controllers\MainController))
#12 /framework/basic/vendor/yiisoft/yii2/base/Controller.php(378): yii\base\Controller->renderContent(' <di...')
#13 /framework/basic/controllers/MainController.php(82): yii\base\Controller->render('index', Array)
#14 [internal function]: app\controllers\MainController->actionIndex()
#15 /framework/basic/vendor/yiisoft/yii2/base/InlineAction.php(55): call_user_func_array(Array, Array)
#16 /framework/basic/vendor/yiisoft/yii2/base/Controller.php(154): yii\base\InlineAction->runWithParams(Array)
#17 /framework/basic/vendor/yiisoft/yii2/base/Module.php(454): yii\base\Controller->runAction('index', Array)
#18 /framework/basic/vendor/yiisoft/yii2/web/Application.php(84): yii\base\Module->runAction('main/index', Array)
#19 /framework/basic/vendor/yiisoft/yii2/base/Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#20 /domains/demo.shinburg.ru/index.php(14): yii\base\Application->run()
#21 {main}

Фактически перестает работать любая форма для которой включена проверка на стороне клиента.
Я предполагаю, что в какой то момент начинает передаваться пустое значение (почему оно становится пустым не понятно)
#3 /framework/basic/vendor/yiisoft/yii2/widgets/ActiveField.php(709): yii\validators\RegularExpressionValidator->clientValidateAttribute(Object(app\models\CallmeFormModel), 'name', Object(yii\web\View))
Почему она становится пустым не понятно.

Быстро привести в работоспособное состояние, на некоторое время, помогает обновления файла «/framework/basic/vendor/yiisoft/yii2/helpers/BaseJson.php», потом через какое то время снова начинается выдаваться эта ошибка.
Спасибо за внимание.
web321
Сообщения: 3
Зарегистрирован: 2016.03.25, 20:59

Re: ActiveField переодически выдает ошибку Malformed UTF-8 characters, possibly incorrectly encoded

Сообщение web321 »

В каком смысле кривые? Где предположительно смотреть? почему они становятся в один промежуток времени кривые, а другой все работает корректно. Пожалуйста опишите подробнее
web321
Сообщения: 3
Зарегистрирован: 2016.03.25, 20:59

Re: ActiveField переодически выдает ошибку Malformed UTF-8 characters, possibly incorrectly encoded

Сообщение web321 »

Да, гуглил. Ничего подходящего не нашел. Понимаю что ошибка не в кодировке файла, так как в этом случае ошибка бы была постоянной.
Возможно вот этот вариант подойдет viewtopic.php?f=19&t=31691&p=161730&hil ... rs#p161730.
Только пока не понял какому свойству нужно задать 'yiiScript' => Yii::getAlias('@root/yii'),
Аватара пользователя
XAKEPEHOK
Сообщения: 38
Зарегистрирован: 2012.08.16, 13:11
Откуда: КМВ
Контактная информация:

Re: ActiveField переодически выдает ошибку Malformed UTF-8 characters, possibly incorrectly encoded

Сообщение XAKEPEHOK »

UP. То же самое. Проблема появляется сама по себе. Рестарт php5-fpm ее устраняет. И спустя время (пара-тройка дней) снова всплывает та же проблема
Большинство неправильных шагов совершаются стоя на месте
Аватара пользователя
XAKEPEHOK
Сообщения: 38
Зарегистрирован: 2012.08.16, 13:11
Откуда: КМВ
Контактная информация:

Re: ActiveField переодически выдает ошибку Malformed UTF-8 characters, possibly incorrectly encoded

Сообщение XAKEPEHOK »

В общем проблема в том, что какой-то php-файл в вашем проекте (в том числе возможно в файле скачанном composer'om) находится в кодировке, отличной от utf-8.
Проблема описана тут https://github.com/yiisoft/yii2/issues/10761, и возникает именно с ActiveForm и связано с генерацией клиентской валидации. И сохраняется проблема из-за того, что php-apc кэширует проблемный файл, и он начинает мешать вообще всей работе.

Я пока не уверен полностью, но похоже виной всему в моем случае guzzle
Большинство неправильных шагов совершаются стоя на месте
Аватара пользователя
denisbondar
Сообщения: 31
Зарегистрирован: 2015.10.12, 19:34

Re: ActiveField переодически выдает ошибку Malformed UTF-8 characters, possibly incorrectly encoded

Сообщение denisbondar »

Была точно такая же проблема.
После перезагрузки php-fpm приложение работало несколько минут и всё.
Удалил целиком vendor и установил заново: composer install --prefer-dist
Проблема решилась.
revenger
Сообщения: 3
Зарегистрирован: 2019.08.12, 11:31
Контактная информация:

Re: ActiveField переодически выдает ошибку Malformed UTF-8 characters, possibly incorrectly encoded

Сообщение revenger »

Тема старая но я тоже столкнулся с подобным глюком.
Начав разбираться, почти сразу определил что ошибка проявляется на всех страницах где используется ActiveForm и вскоре нашел файл BaseJson где выбрасывается исключение с таким текстом.
Когда начал отлаживать, добавил перед исключением самопальный обработчик и внезапно все заработало.
Получается, что я закоммитил этот файл в кодировке utf-8. К сожалению, техподдержка не особо помогла но на сервере кодировка была отличной от utf-8.
http://www.khtulhu.org.ua/veb-programmi ... coded.html
Ответить