Здравствуйте!
Дублирую тему с русского форума SMF. Проблема не решена до сих пор. очень нужна помощь.
Quote
Здравствуйте!
Есть форум http://souzwiccan.ru/forum
SMF - 2.0.4
Кодировка - UTF-8 (со времени установки).
Тема - отредактированная (только картинки) - Green Flowers by Tamurilart.com
Форум перенес уже два переезда (оба по вине хостера).
Только недавно заметили, что некоторые сообщения в темах перестали отображаться.
Дело в букве И, которая выглядит, как кракозябра - и если в сообщении есть заглавная буква И, то текст сообщения не отображается (хотя отредактировать пост можно).
Погуглив, через MyPHPAdmin посмотрела кодировки, которые сейчас используются базой данных. Список такой:
character_set_client | utf8 |
character_set_connection | utf8 |
character_set_database | cp1251 |
character_set_filesystem | binary |
character_set_results | utf8 |
character_set_server | cp1251 |
character_set_system | utf8 |
character_sets_dir | /usr/local/share/mysql/charsets/ |
Подозреваю, что где-то здесь кроется проблема.
Подскажите пожалуйста, как можно наладить отображение и "подружить кодировки"?
На данный момент
Quote from: Elaneor on May 13, 2013, 11:24:19 PMСитуация следующая.
Базу данных форума перевели на utf8-general ci, с помощью скрипта
Код: [Выделить]
SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as sqlcode
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'db_name'
ORDER BY 1
- Этот скрипт дал список команд для конвертации всех таблиц.
Список команд был скопирован в поле запроса и так же выполнен.
Теперь все таблицы имеют кодировку utf8_general_ci.
Также выполнена команда
Код: [Выделить]
ALTER DATABASE database1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Однако, это не помогло.
Если снова добавить в Settings.php указание кодировки, мы снова имеем кракозябли.
Если снова указание кодировки убрать, режутся посты с буквой И.
Где еще можно посмотреть настройки?
был выполнен запрос
Код: [Выделить]
INSERT INTO smf_settings (variable, value) VALUES ('global_character_set', 'UTF-8')
часть отображаемых кракозябл (которые отображались при прочей нормальной работе-например в названиях веток в колонке "Последний ответ") ушла.
Остались проблемы c постами с заглавной буквой И
Код: [Выделить]
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
....
<script type="text/javascript"><!-- // --><![CDATA[
......
var smf_charset = "UTF-8";
......
// ]]></script>
Остается ключевая проблема : если в посте есть заглавная буква И, пост не отображается ( админ может отредактировать пост, пользователю даже это не видно)
На данный момент, запрос
SHOW VARIABLES LIKE 'char%'
выдает следующий ответ
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server cp1251
character_set_system utf8
character_sets_dir /usr/local/share/mysql/charsets/
Т.е, на сервере хостера действительно кодировка
character_set_server cp1251
Может ли быть проблема в этом? Можно ли ее решить своими способами?
Как-то аргументировать хостеру, что мне нужна другая кодировка? (Правда, если они изначально поставили вопрос, то что-то мне кажется, что я не добьюсь ничего путного).
поможет ли здесь явная команда
set names utf-8
и где ее можно прописать?
Elaneor, у вас на форуме удалены копирайты SMF (c) Вряд ли кто-то будет вам помогать с таким отношением к поддержке SMF O:)
QuoteСитуация следующая.
Базу данных форума перевели на utf8-general ci, с помощью скрипта
Нужно было делать из админки - там есть специально сделанная для этого действия кнопка.
QuoteОстается ключевая проблема : если в посте есть заглавная буква И, пост не отображается ( админ может отредактировать пост, пользователю даже это не видно)
Попробуйте в самом дампе заменить эту букву глобально.
Quoteпоможет ли здесь явная команда
set names utf-8
и где ее можно прописать?
Если выставлена кодировка utf8, то эта команда и так всегда выполняется.