Skip to content

UTF-8 и все, все, все...

Есть живой форум на Win-1251 (IPB 2.0), после апгрейда на версию форума 2.2 хочу изменить кодировку на UTF-8.

 

Вопрос: Как?

Featured Replies

  • Author

При новой установке, просто перекодирую лэнг-файлы (русские) в UTF-8 - русский отображается нормально, но в админке, если пишешь по-русски (к примеру название сайта) буква "И" отображается козябрами.... Вот.

Глобальные настройки - кодировка.

Нет. Там сложнее. Я даже ответить не могу.

Там речь идет о кодировке базы. С этим самые большие проблемы.

  • Author

Viper

Оч. смешно (((

 

Fisana

Да, базы были переконвертированы в UTF-8, но проблему с "И" и возможно другими символами это не снимает...

Думаю, стоит дождаться ответа Dr.Freddy.

Я, к сожалению, не по этой части и о проблеме знаю поверхностно.

Вообще я не шутил, я просто не понял сразу что речь о кодировке базы.

 

Сталкивался с подобным при работе с HostCMS, там я это решал путем запроса в базу, который перестраивал кодировку на нужную мне. Составить подобный запрос для IPB могу попробовать, но лучше действительно дождаться ответа тех людей, которые разбираются в этом профессионально.

Если дело неотложное, ему лучше написать. Данные для связи найдете в контактах.

  • Author

Fisana

Нет, это пока терпит

Перевод форума IPB на UTF-8 кодировку.

 

 

Вам понадобится:

1. Дистрибутив форума IPB в UTF-8 кодировке.

2. MySQL подготовленный для работы в UTF-8 кодировке. Желательно версии 4.1 и выше.

3. EmEditor и Notepad2 для работы с файлами форума.

4. Немного терпения.

 

Чистая установка форума в UTF-8 кодировке.

 

Настраиваем MySQL.

 

MySQL-кодировка: UTF-8 Unicode (utf8)

Сопоставление соединения с MySQL: utf8_general_ci

 

У базы данных созданной для форума сопоставление соединения должно быть выставлено в utf8_general_ci

 

Настраиваем соединение с БД в файлах форума.

Для того, чтобы все данные точно заносились в БД в корректном виде надо в файлах, где идет соединение с БД добавить:

 

mysql_query('SET NAMES UTF8');

mysql_query('SET CHARACTER SET UTF8');

mysql_query("SET collation_connection='utf8_general_ci'");

 

По идее это достаточно сделать только в \ips_kernel\ class_db_mysql.php

После

if ( ! mysql_select_db($this->obj['sql_database'], $this->connection_id) )

{

$this->fatal_error();

return FALSE;

}

 

Но для перестраховки я прописал данные указания в нескольких файлах, где идет соединение с БД ($this->DB->connect())

 

\sources\ipsclass.php

ipchat.php (если кто использует)

и т.д.

 

Далее заливаем файлы на хостинг и производим установку. Если функция форума "Календарь" выдает неправильные короткие дни недели, то заменяем файлы

calendar.php в \sources\action_public

и

lang_global.php в cache\lang_cache\ru

 

файлами из архива дистрибутива.

 

Перевод уже имеющегося форума в UTF-8.

 

Первое, что советую сделать перед переводом форума в utf-8 кодировку – это сделать бекап базы данных форума и самого форума.

 

Далее делаем отдельный дамп база данных форума и открываем его в EmEditor. Сохраняем его в UTF-8 кодировке.

У каждой таблицы DEFAULT CHARSET=utf8 меняем на DEFAULT CHARSET=utf-8

 

Потом производим настройку MySQL (см. Чистую установку), настраиваем соединениес БД форума в файлах и заливаем их на хостинг. Также загружаем дамп БД форума в utf-8 кодировке.

 

Ланг файлы установленных модов надо переводить в UTF-8. Если где в файлах модов или скинов идет указание кодировки win1251, то заменяем ее на utf-8.

© Kuja

 

Сам не делал, но всё решаемо. Попробуйте по этой инструкции, в случае проблем, думаю, стоит обратиться к её автору.

  • Author

Спасибо, попробую.

  • 9 months later...

Столкнулся с проблемой...

У меня так исторически сложилось что база форума находиться в УТФ-8

Сейчас стоит инвижин 2,2,2 английский, и вроде как нормально работает.

На днях пытался обновиться до 2,3,3 (русский) - результат...

Либо сам форум в иероглифах, а посты в нормальной кирилице, либо посты в иероглифах а форум нормально отображаеться

*нормально то отображается, но в разделе "настройки" в админке есть только таблица в которой отсутствуют категории настроек (вообще ни как не отображаются) а присутствуют только количество настроек в этих категориях....

 

Перепробовал пару методов, в том числе и описанный выше - так и не получилось подружить инвижин и базу в УТФ8...

 

Может кто-то чем поможет... ? я честно говоря теряюсь... сейчас к сожалению времени нет этим в упор заняться - сессия...

Пробовал перекодировать базу в вин1251, не получилось... видно неправильно пробовал...

 

В общем жду ваших советов, и заранее вам спасибо

 

Если в чем-то по ходу дела сам разберусь - обязательно отпишусь, может кому полезно будет...

Либо сам форум в иероглифах, а посты в нормальной кирилице,
при таком случае, я бы просто сконвертировал языковые файлы в utf-8 кодировку. Иначе конвертируйте БД, но это уже не бесплатно наверно

Что не бесплатно?

я пока что считаю что конвертировать базу в win 1251 это единственный выход (который я вижу) из данной ситуации

 

Я же чуть выше писал (возможно не достаточно понятно)

В случае если посты видны нормально, а сообщения форума иероглифами - есть еще одна проблема кроме ленг-файлов (конвертировать пробовал)

У меня в админке пропадают разделы с настройками (на странице "настройки")

И еще был замечен глюк - не работает ссылка "перейти к новым постам в этой теме"....

Может еще что не работате....

 

Короче простым конвертированием ленг файлов вопрос не решается

(это было помоему первое что я попробовал)

1. Конвертировать файлы не надо, просто залить от русской версии их.

2. В админке не забыть указать кодировку windows-1251 в общих настройках.

3. Конвертировать БД из утф в вин. Этот пункт можно заменить на выставление utf-8 в conf_global.php

Саннис, тут надо расписать как конвертировать еще:)

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.