Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2011-09-16 10:26:22

Nuka
Участник
Зарегистрирован: 2011-09-16
Сообщений: 4

Проблемы кодировки при апгрейде с PunBB 1.2

Скопировал базу, на неё поставил старый панбб 1.2 (русифицированный), проверил - все работает. Поставил в другую директорию FluxBB (не русифицированный) скопировал конфиг с пана и запустил db_update, все запдейтил (даже пароли не пофейлил), но русскими символами беда, кодировка слетела или ещё что не понятно все выглядит как абракадабра, с английскими символами все ок. На туже базу поставил ещё один пан1.2 проблема с кодировкой осталась (в браузере стоит утф-8). Вопрос: проблема из-за того что апдейтил без русификации? Или проблема в базе?
В базе все стоит как utf8_general_ci

Редактировался Nuka (2011-09-16 10:37:19)

Offline

#2 2011-09-16 14:58:51

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Проблемы кодировки при апгрейде с PunBB 1.2

@Nuka, если update был с Win1251 на оригинальный форум FluxBB 1.4.хх, то проблема в конвертации.
Я для своей сборки модифицировал файл обновления:
Вместо

//define('FORUM_DEFAULT_CHARSET', 'latin1');

ставил

define('FORUM_DEFAULT_CHARSET', 'cp1251');

а ф-ия convert_to_utf8 стала выглядеть так

function convert_to_utf8(&$str, $old_charset)
{
    if ($str === null || $str == '')
        return false;

    $save = $str;

    // Replace literal entities (for non-UTF-8 compliant html_entity_encode)
    if (version_compare(PHP_VERSION, '5.0.0', '<') && $old_charset == 'ISO-8859-1' || $old_charset == 'ISO-8859-15')
        $str = html_entity_decode($str, ENT_QUOTES, $old_charset);

    if ($old_charset != 'UTF-8' && !seems_utf8($str))
    {
        // Visman
        if (function_exists('iconv') && strpos($old_charset, '1251') !== false)
            $str = iconv('CP1251', 'UTF-8//IGNORE//TRANSLIT', $str);
        else if (function_exists('mb_convert_encoding') && strpos($old_charset, '1251') !== false)
            $str = mb_convert_encoding($str, 'UTF-8', 'CP1251');
        // Visman
        else if (function_exists('iconv'))
            $str = iconv($old_charset == 'ISO-8859-1' ? 'WINDOWS-1252' : 'ISO-8859-1', 'UTF-8', $str);
        else if (function_exists('mb_convert_encoding'))
            $str = mb_convert_encoding($str, 'UTF-8', $old_charset == 'ISO-8859-1' ? 'WINDOWS-1252' : 'ISO-8859-1');
        else if ($old_charset == 'ISO-8859-1')
            $str = utf8_encode($str);
    }

    // Replace literal entities (for UTF-8 compliant html_entity_encode)
    if (version_compare(PHP_VERSION, '5.0.0', '>='))
        $str = html_entity_decode($str, ENT_QUOTES, 'UTF-8');

    // Replace numeric entities
    $str = preg_replace_callback('%&#([0-9]+);%', 'utf8_callback_1', $str);
    $str = preg_replace_callback('%&#x([a-f0-9]+);%i', 'utf8_callback_2', $str);

    // Remove "bad" characters
    $str = remove_bad_characters($str);

    return ($save != $str);
}

Offline

#3 2011-09-16 21:48:24

Nuka
Участник
Зарегистрирован: 2011-09-16
Сообщений: 4

Re: Проблемы кодировки при апгрейде с PunBB 1.2

Спасибо. Разобрался. Я не правильно указал кодировку в db_update, вместо UTF-8 поставил UTF8

Кстати я не смог заапдейтиться вашей сборкой. db_update выдал ошибку на 507ом лайне вроде (не помню уже точно). Также были проблеме при чистой её установке - даже после инсталла она постоянно пытается грузить уже удаленный install.php

Редактировался Nuka (2011-09-16 21:52:03)

Offline

Подвал доски

Под управлением FluxBB. Хостинг Hostens