Проблема с перекодировкой форума с CP-1251 на UTF-8

Автор ValerBOSS, 03 августа 2012, 00:50:52

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

ValerBOSS

Собственно, проблема: после перекодировки форума половина символов отображается вот так:
Р' СЌС,РѕРј разделе можно весС,Рё разговоры РЅР° любые С,емы.
А остальные вот таким образом: ��������������������������
Как это можно поправить?
Зы: возможно, такая проблема уже обсуждалась, но в поиске я не смог найти решений. Видно плохо искал.

digger®

Цитата: ValerBOSS от 03 августа 2012, 00:50:52
Собственно, проблема: после перекодировки форума половина символов отображается вот так:
Р' СЌС,РѕРј разделе можно весС,Рё разговоры РЅР° любые С,емы.
А остальные вот таким образом: ��������������������������
Как это можно поправить?
Зы: возможно, такая проблема уже обсуждалась, но в поиске я не смог найти решений. Видно плохо искал.
После перекодировки нужно:
1) Установить локализацию Russian-utf8 и переключить форум на нее
2) В Settings.php добавить строку
$db_character_set = 'utf8';

ValerBOSS

digger, спасибо за совет, попробую. О результатах отпишусь.
Цитата: digger от 03 августа 2012, 01:30:08переключить форум на нее
Можно по-подробнее пожалуйста?

ValerBOSS

Еще пару слов. Кодировка форума до - 1251, кодировка базы для форума и сайта до UTF-8.
В settings.php этот параметр $db_character_set = 'utf8'; уже был выставлен.
Я вернул все на место рекавером базы - но тогда форум остается в кодировке 1251. Хотелось бы на UTF-8, конечно, но тут вот такая зараза.

digger®

Цитата: ValerBOSS от 03 августа 2012, 12:35:22
digger, спасибо за совет, попробую. О результатах отпишусь.Можно по-подробнее пожалуйста?
Админка - Настройка языков - Добавить язык - Russian - Поиск - SMF russian-utf8 - Установить
Админка - Настройка языков - Язык форума по умолчанию - Russian-utf8

ValerBOSS

Поставил UTF-8 на форуме под "рекаверной" базой (форум под базой, которую я перекодировал с помощью утилиты, работать нормально отказывается). Работает. НО: в Settings.php таки при поставлении параметра $db_character_set = 'utf8'; половина символов переходит в "кракозябры", однако на месте старых вопросов отображаются нормальные буквы. Я его, конечно, убрал. Но будет ли тогда корректно отображаться шрифт у юзеров из-за границы?

digger®

Цитата: ValerBOSS от 03 августа 2012, 14:07:21
Поставил UTF-8 на форуме под "рекаверной" базой (форум под базой, которую я перекодировал с помощью утилиты, работать нормально отказывается). Работает. НО: в Settings.php таки при поставлении параметра $db_character_set = 'utf8'; половина символов переходит в "кракозябры", однако на месте старых вопросов отображаются нормальные буквы. Я его, конечно, убрал. Но будет ли тогда корректно отображаться шрифт у юзеров из-за границы?
Объясните понятно, у вас проблема с текстами сообщений или надписями самого форума?


Mavn

в бд проверьте читаемый ли вид у ваших сообщений
таблица smf_messages где smf_ - префикс таблицы
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

ValerBOSS

Да вроде читаемый... Но проблема не только с сообщениями, но и с названиями тем\разделов, названиями групп пользователей. Остальное - на русском

Mavn

Цитата: ValerBOSS от 03 августа 2012, 14:07:21Работает. НО: в Settings.php таки при поставлении параметра $db_character_set = 'utf8'; половина символов переходит в "кракозябры", однако на месте старых вопросов отображаются нормальные буквы. Я его, конечно, убрал.
если учитывать выше написанное то я не уверен что у вас бд и данные в бд в кодировке UTF-8
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

ValerBOSS

#11
Значит утлита перекодировки (которая в обслуживнии) просто не перекодировала записи в базе. Может быть есть какие-либо сторонние утилиты для этого? Не подскажите?

ValerBOSS

Можно не подсказывать. Проблема, в том, что когда форум был на 1251 база была в UTF-8, и по этому изменения типа постов (и вообще любых русских записей) вносились крякозябрами (для utf - крякозябры, для 1251 - русские буквы). После перекодировки - (из utf в utf), в базе, понятное дело, ничего не изменилось. А так как форум теперь читает Utf, все записи стали отображаться соответственно - крякозябрами.
Что делать? Хз. Если придумаю что - напишу. А вообще должна помочь полная переустановка форума (благо, у меня форум на локалке, без любого ценного содержимого). Но это крайний вариант.

ValerBOSS

Пишу, как я решил эту проблему (через ж.. конечно, но решил)).
1) Сделал бэкапы всего, что можно.
2) Закинул в папку с форумом установочные файлы из дистрибуива (install.php и др.)
3) Захожу на форум, устанавливаю. При установке выбрал основной кодировку utf-8. Форум устанавливал под другую базу (не под старую).
4) Установлено. Иду в settings.php там прописываю старую базу.
5) Теперь захожу на форум и.. о чудо! Ну вы поняли, все отображается корректно.
Вот так как-то...