Simple Machines Community Forum

SMF Support => Language Specific Support => Русский (Russian) => Topic started by: Elaneor on May 14, 2013, 01:36:06 PM

Title: Проблема с кодировкой (буква И) после смены сервера
Post by: Elaneor on May 14, 2013, 01:36:06 PM
Здравствуйте!
Дублирую тему с русского форума SMF. Проблема не решена до сих пор. очень нужна помощь.

Quote
Здравствуйте!
Есть форум http://souzwiccan.ru/forum
SMF - 2.0.4
Кодировка - UTF-8 (со времени установки).
Тема - отредактированная (только картинки) - Green Flowers by Tamurilart.com

Форум перенес уже два переезда (оба по вине хостера).

Только недавно заметили, что некоторые сообщения в темах перестали отображаться.
Дело в букве И, которая выглядит, как кракозябра - и если в сообщении есть заглавная буква И, то текст сообщения не отображается (хотя отредактировать пост можно).
Погуглив, через MyPHPAdmin посмотрела кодировки, которые сейчас используются базой данных. Список такой:









character_set_clientutf8
character_set_connectionutf8
character_set_databasecp1251
character_set_filesystembinary
character_set_resultsutf8
character_set_servercp1251
character_set_systemutf8
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>

Остается ключевая проблема : если в посте есть заглавная буква И, пост не отображается ( админ может отредактировать пост, пользователю даже это не видно)
Title: Re: Проблема с кодировкой (буква И) после смены сервера
Post by: Elaneor on May 14, 2013, 11:50:08 PM
На данный момент, запрос
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
и где ее можно прописать?
Title: Re: Проблема с кодировкой (буква И) после смены сервера
Post by: CedarMill on May 17, 2013, 01:20:12 PM
Elaneor, у вас на форуме удалены копирайты SMF (c) Вряд ли кто-то будет вам помогать с таким отношением к поддержке SMF O:)
Title: Re: Проблема с кодировкой (буква И) после смены сервера
Post by: inter on May 21, 2013, 02:59:48 AM
QuoteСитуация следующая.
Базу данных форума перевели на utf8-general ci, с помощью скрипта

Нужно было делать из админки - там есть специально сделанная для этого действия кнопка.

QuoteОстается ключевая проблема : если в посте есть заглавная буква И, пост не отображается ( админ может отредактировать пост, пользователю даже это не видно)
Попробуйте в самом дампе заменить эту букву глобально.

Quoteпоможет ли здесь явная команда
set names utf-8
и где ее можно прописать?
Если выставлена кодировка utf8, то эта команда и так всегда выполняется.