Проблеми з кодуванням при оновленні з IPB 2

  • зробити
  • root
  • 3784 повідомлень
  • Не вас нудитиму. Справа була в тому, що в БД інформація закодована двома кодуваннями, спочатку в latin1, а потім CP1251 (а все через те, що колись, коли я був зелений і юний, я накосячив при установки IPB, сам того не підозрюючи). Так ось, про те як виправити цей прикрий ляп буде написано нижче. Перед тим як приступити ОБОВ'ЯЗКОВО зробіть бекап вашої бази (про всяк випадок, тому що як відомо випадки бувають різні).

    1. Для початку необхідно змінити кодування utf8 для всіх таблиць. Це можна зробити ручками, виконавши команду: Для кожної таблиці зробити такий запит (можна зробити відразу все в phpMyAdmin). Але! Але ж ми вам не хочеться писати це для кожної таблиці? Якщо так, то спеціально для таких був написаний найпростіший скрипт на php, що повністю автоматизує цю процедуру: Копіюємо це, створюємо файл, наприклад, 1.php і закидаємо в папку з форумом. Тепер запускаємо його xttp://ваш_форум/1.php. І дивимося, як скрипт змінює кодування на utf8.

    2. Наступним етапом буде відновлення правильного кодування для вашої бази даних. На даному етапі необхідно експортувати базу даних (можна зробити засобами phpMyAdmin, sypex Dumper або ручками через SSH). Після того як база збережена, скористаємося чудовою утилітою iconv (для тих, кому цікаво можуть почитати про неї в інтернеті).

    За допомогою цієї утиліти необхідно зробити подвійне перетворення кодування: Ну от і все. Кодування успішно змінилося на правильне. Залишилося тільки імпортувати базу назад, будь-якими засобами (phpMyAdmin, sypex Dumper або ручками через SSH).

    3. Якщо при оновленні у вас не такапомилка, то просто скористайтеся докладним мануалом по оновленню до 3 версії.