Advertisement:

Author Topic: Проблема с кодировкой (буква И) после смены сервера  (Read 9138 times)

Offline Elaneor

  • Newbie
  • *
  • Posts: 5
  • Gender: Female
    • Free wizards' patrimony
Здравствуйте!
Дублирую тему с русского форума SMF. Проблема не решена до сих пор. очень нужна помощь.

Quote
Здравствуйте!
Есть форум hxxp:souzwiccan.ru/forum [nonactive]
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/

Подозреваю, что где-то здесь кроется проблема.
Подскажите пожалуйста, как можно наладить отображение и "подружить кодировки"?


На данный момент
Ситуация следующая.
Базу данных форума перевели на 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>

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

Offline Elaneor

  • Newbie
  • *
  • Posts: 5
  • Gender: Female
    • Free wizards' patrimony
На данный момент, запрос
Code: [Select]
SHOW VARIABLES LIKE 'char%'
выдает следующий ответ
Code: [Select]
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
и где ее можно прописать?

Offline CedarMill

  • Semi-Newbie
  • *
  • Posts: 22
  • Gender: Male
Elaneor, у вас на форуме удалены копирайты SMF (c) Вряд ли кто-то будет вам помогать с таким отношением к поддержке SMF O:)
SMF 2.0.7

Offline inter

  • Jr. Member
  • **
  • Posts: 290
  • Gender: Male
    • interlab on GitHub
Quote
Ситуация следующая.
Базу данных форума перевели на utf8-general ci, с помощью скрипта

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

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

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