Горбушка
Ищу её...
- Регистрация
- 2 Май 2008
- Сообщения
- 3.444
- Реакции
- 2.524
- Автор темы
- #1
Описание проблемы:
В модулях, во всех версиях ДЛЕ и т.д. везде или в отдельных местах не выводятся русские символы, при этом английские символы показываются корректно.
Причины проблемы:
В 99% случаев причиной проблемы является PHP 5.4 и выше. Дело в том, что разработчики PHP решили подарить намгеморрой, изжогу и ненависть к себе долгожданную поддержку UTF-8 и других кодировок. Но при этом изменили синтаксис htmlspecialchars().
Решение проблемы:
Для исправления проблемы достаточно по всему коду сделать следующие изменения:
Заменить на:
Внимание! Вместо $string может быть любая переменная, строка и даже функция. Вместо UTF-8 следует указывать cp1251 для ДЛЕ cp1251, UTF-8 для ДЛЕ UTF-8.
Для внесения изменений нужен начальный навык программирования PHP. Если у Вас нет опыта и не уверены в своих действиях (а скорее всего это так, раз Вы читаете эту тему), рекомендуется перед внесением изменений сделать резервную копию файлов. Если самостоятельно решить проблему не получается - выкладывайте файлы (через файлообменники - рекомендуем rghost, narod), мы Вам поможем. Заранее позаботьтесь и найдите все файлы, в которых есть функция htmlspecialchars, чтобы нам не искать по всему модулю.
Но лучше сразу менять на (для DLE) :
В модулях, во всех версиях ДЛЕ и т.д. везде или в отдельных местах не выводятся русские символы, при этом английские символы показываются корректно.
Причины проблемы:
В 99% случаев причиной проблемы является PHP 5.4 и выше. Дело в том, что разработчики PHP решили подарить нам
Решение проблемы:
Для исправления проблемы достаточно по всему коду сделать следующие изменения:
PHP:
htmlspecialchars($string);
PHP:
htmlspecialchars($string, NULL, 'UTF-8');
Для внесения изменений нужен начальный навык программирования PHP. Если у Вас нет опыта и не уверены в своих действиях (а скорее всего это так, раз Вы читаете эту тему), рекомендуется перед внесением изменений сделать резервную копию файлов. Если самостоятельно решить проблему не получается - выкладывайте файлы (через файлообменники - рекомендуем rghost, narod), мы Вам поможем. Заранее позаботьтесь и найдите все файлы, в которых есть функция htmlspecialchars, чтобы нам не искать по всему модулю.
Но лучше сразу менять на (для DLE) :
PHP:
htmlspecialchars( stripslashes( $qs['question'] ), ENT_QUOTES, $config['charset'] );
Последнее редактирование: