vBulletin cp1251 --> utf8. Как?

psylosss
На сайте с 23.12.2005
Offline
126
981

/ru/forum/74024

... спустя 1.5 года

Задача: сайт успешно переведен с win1251 ---> UTF-8. Необходимо то же самое сделать с форумом vbulletin 3.6.8.

Проблемы:

Первая и главная - после импорта дампа БД в кодировке UTF-8 (с соответствующими изменениями в charset и collation) возникает такая фигня: при открытии любой страницы форума выскакивает пара PHP-warnings и выдается сообщение, что, мол, этот пользователь заблокирован, причина не указана. В админку не зайти. Точно такой же эффект появляется, если БД не конвертировалась, но в функции db_connect дописывается


mysql_query('SET NAMES \'utf8\'',$link);
mysql_query("SET collation_connection = 'utf8_unicode_ci'",$link);
mysql_query("SET collation_database = 'utf8_unicode_ci'",$link);
mysql_query("SET collation_server = 'utf8_unicode_ci'",$link);
mysql_query("SET character_set_client = 'utf8'",$link);
mysql_query("SET character_set_connection = 'utf8'",$link);
mysql_query("SET character_set_results = 'utf8'",$link);
mysql_query("SET character_set_server = 'utf8'",$link);
mysql_query("SET character_set_database = 'utf8'",$link);
mysql_query("SET character_set_system = 'utf8'",$link);

Вобщем никак не подружить VB и UTF-8 :(

Кто сталкивался с подобным? Может кто-нибудь проконсультировать, что именно нужно сделать чтобы форум на UTF-8 перевести?

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.
N
На сайте с 28.03.2006
Offline
130
#1

psylosss, Самое простое это в config.php

// ****** ОПЦИИ MySQLI *****

// При использовании MySQL 4.1+, MySQLi должен быть использован для соединения с БД

// Если Вам требуется изменить кодировку по умолчанию, при использовании кодировки,

// отличной от latin1, то Вы можете указать её здесь.

// Если Вы не укажете здесь кодировку, то она будет такой же, как и по умолчанию в БД,

// что может вызвать ошибки. Не изменяйте здесь ничего до тех пор, пока не будете уверены,

// что это действительно требуется.

// $config['Mysqli']['charset'] = 'utf8';

Раскомментировать

$config['Mysqli']['charset'] = 'utf8';

psylosss
На сайте с 23.12.2005
Offline
126
#2

да, это испробовано: не помогает. Похоже, становится понятно в чем дело. Использую расширение mbstring, и с ним, похоже, конфликты и VB. Есть еще предположения?

Проблема не в иероглифах - с ними понятно как справиться. Проблема в том, что движок начинает выдавать варнинги, если его в UTF пытаться перевести

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий