Warning: htmlspecialchars() [function.htmlspecialchars]: Invalid multibyte sequence in argument

Аватар пользователя exay exay 11 января 2011 в 16:26

Вывалился вот такой ворнинг при просмотре ролей(http://www.mozhga.net/admin/people/permissions/roles):
Warning: htmlspecialchars() [function.htmlspecialchars]: Invalid multibyte sequence in argument в функции check_plain() (строка 1476 в файле /home/mozhganet/mozhga.net/includes/bootstrap.inc).

0 Thanks

Комментарии

Аватар пользователя RuGeN RuGeN 10 марта 2011 в 0:46

перечитал 100500 постов ... кто-нибудь решил этот вопрос, отпишитесь-помогите людям добрым =)

Аватар пользователя sv_ma3x sv_ma3x 23 марта 2011 в 0:47

Открываете файл на который он ругается: bootstrap.inc
Находите в нем строку 1476 и меняете
function check_plain($text) {
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
}
на
function check_plain($text) {
return htmlspecialchars($text, ENT_QUOTES, 'cp1251');
}
и все ваши беды уйдут)))

Аватар пользователя Dock@drupal.org Dock@drupal.org 25 марта 2011 в 15:31
"sv_ma3x" wrote:

Открываете файл на который он ругается: bootstrap.inc
Находите в нем строку 1476 и меняете

Патчить ядро зло, тем более таким образом. Более правильный патч:

function check_plain($text) {
if (drupal_validate_utf8($text))
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
return htmlspecialchars($text, ENT_QUOTES);
}

Аватар пользователя oOLokiOo oOLokiOo 25 октября 2012 в 14:35
Dock@drupal.org][quote="sv_ma3x" wrote:

Открываете файл на который он ругается: bootstrap.inc
function check_plain($text) {
if (drupal_validate_utf8($text))
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
return htmlspecialchars($text, ENT_QUOTES);
}

После данного метода у меня вылазит следующий эрор:

Работаю с французскими символами. База в юникоде (utf8_general_ci). Файлы тоже в UTF-8;
Не подскажите, как побороть?

Аватар пользователя acoder acoder 15 апреля 2011 в 11:18
"<a href="mailto:Dock@drupal.org">Dock@drupal.org</a>" wrote:

Более правильный патч:

Спасибо. Тоже пришлось воспользоваться данным пачем.

Ядро трогать не люблю, но какие еще варианты?

Аватар пользователя Dock@drupal.org Dock@drupal.org 15 апреля 2011 в 11:20

Да вот же, пока не нашел в чем дело. Проблема больше связана с хостингом, чем с друпалом. Пробовал на разных серверах - ошибка появляется только на одном из 4.

Аватар пользователя Dr.Osd Dr.Osd 5 июля 2011 в 22:13

+1. Аналогичная ситуация. Действительно, только на некоторых хостингах такая проблема.

Аватар пользователя Cyber Cyber 5 июля 2011 в 22:42

модуль search engine referers, в базу пишутся запросы, после патча ромбики показывает, но уже лучше, хоть не материться на варнинги

Аватар пользователя Dr.Osd Dr.Osd 15 июля 2011 в 17:13

Теперь такая же ошибка, не только при просмотре ролей но и при использовании поиска.

Аватар пользователя fess2005 fess2005 6 сентября 2011 в 10:38

Спасибо! помогло, но только в таком вот порядке
if ($php525) {
return htmlspecialchars($text, ENT_QUOTES);
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
}

Аватар пользователя kpuk kpuk 26 декабря 2012 в 22:47

выкурил проблему: оказалось файлы темы были сохранены в разной кодировке. нашёл 1 который был в windows-1251, тогда как остальные в UTF-8. После исправления стало ок.

Аватар пользователя organizm organizm 13 июля 2014 в 19:45
kpuk wrote:

выкурил проблему: оказалось файлы темы были сохранены в разной кодировке. нашёл 1 который был в windows-1251, тогда как остальные в UTF-8. После исправления стало ок.

Помогло. Сменил кодировку файлов своего модуля и ошибка ушла.

Аватар пользователя remix remix 1 марта 2013 в 21:40

Ошибка:

Warning: htmlspecialchars() [[url=http://domain.com/admin/people/permissions/function.htmlspecialchars]fun... Invalid multibyte sequence in argument в функции check_plain() (строка 1476 в файле/home/user/domains/domain.com/includes/bootstrap.inc).

Решение:
Ищем в файле includes/bootstrap.inc строку 1476 и переписываем функцию вот в таком виде:

function check_plain($text) {
if (drupal_validate_utf8($text))
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
return htmlspecialchars($text, ENT_QUOTES);
}

Аватар пользователя Иван888 Иван888 5 июля 2013 в 12:01

А у меня вот так:

Warning: htmlspecialchars() [function.htmlspecialchars]: Invalid multibyte sequence in argument в функции check_plain() (строка 1559 в файле /home/u9311/domains/domain.com/includes/bootstrap.inc).

Аватар пользователя mamba mamba 7 февраля 2014 в 12:25

Была такая ошибка. Отключил модуль Textimage и всё стало работать. Так что оказывается и от модулей зависит. Хотя на локалке всё было нормально, без ошибок. На хостинг перенес и вылезли ошибки. Кстати, друпалхостинг. только им пользуюсь 3 года. Всем советую.

Аватар пользователя RASSEL RASSEL 3 апреля 2014 в 17:29

А у меня эта фишка начала появляться после создания шаблона синонима! Только ругался на строку 1566.
Переделал сам шаблон, заменил одну из составляющих шаблона ... все вернулось на места!!!
Так что тоже на заметку всем.

Аватар пользователя tlito tlito 11 ноября 2014 в 0:31

я пользовался комментарием 11:
https://www.drupal.org/node/1090290

Confirming the issue. User Dock from Russian Drupal community site got some solution (though it require to patch the Drupal's Core, so you should only use it as a temporary one for the first time in case that warnings annoys you much).

Edit the bootstrap.inc file in the 'includes' directory in your Drupal installation, line 1476:

Comment this line:

return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');

And insert next:

if (drupal_validate_utf8($text)) return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
return htmlspecialchars($text, ENT_QUOTES);
It helped me and other people, but the correct solution without any manual changing the Core files must be finded.

Аватар пользователя daniilbosov daniilbosov 2 апреля 2015 в 13:02
"tlito" wrote:

return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
And insert next:
if (drupal_validate_utf8($text)) return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
return htmlspecialchars($text, ENT_QUOTES);

мне тоже помог этот патч

Аватар пользователя tlito tlito 2 июня 2015 в 21:32

Мне перестало помогать. Друпал 7.37 выдает еще больше ошибок.
PDOException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: '\xE2\xEE\xEF\xF0\xEE\xF1...' for column 'message' at row 1: INSERT INTO {watchdog} (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9); Array ( [:db_insert_placeholder_0] => 0 [:db_insert_placeholder_1] => page not found [:db_insert_placeholder_2] => ..... [:db_insert_placeholder_3] => N; [:db_insert_placeholder_4] => 4 [:db_insert_placeholder_5] => [:db_insert_placeholder_6] => http://site.ru/%E2%EE%EF%F0%EE%F1-%EE%F2%E2%E5%F2 [:db_insert_placeholder_7] => http://yandex.ru/clck/jsredir?from=yandex.ru%3Byandsearch%3Bweb%3B%3B&te... [:db_insert_placeholder_8] => 46.159.235.220 [:db_insert_placeholder_9] => 1433269797 ) в функции dblog_watchdog() (строка 160 в файле modules/dblog/dblog.module).

теперь я пользуюсь таким решением которой под номером #21 тут https://www.drupal.org/node/1430166

function check_plain($text) {
return htmlspecialchars(mb_convert_encoding($text, "UTF-8", "auto"), ENT_QUOTES, 'UTF-8');
}