Кто-нибудь конвертировал сабж? У меня возникла проблема: получилось почти все, кроме кодировки символов
Старый форум (phpBB2) был в кодировке windows-1251, а новый в utf-8. Весь контент переносится в виде каких-то кракозябров...
Окунувшись в документацию, вычитал, что нужно поправить файл lang_main.php в старом форуме, а именно $lang['ENCODING']. Но изменения в нем влияют лишь на внешний вид кракозябров. Нормального текста контента добиться не удалось.
P.S.
phpBB2 2.0.20
phpBB3 3.0 RC3
С чего начать?
Начните с "чистой" установки phpBB3 в отличный от phpBB2 каталог. Затем снова перейдите в баузере в каталог install и щёлкните по вкладке "Конвертирование".
Изменяются ли в процессе конвертации содержимое и файлы phpBB2?
В процессе конвертации не подвергаются изменениям ни таблицы phpBB2 в базе данных, ни исходные файлы phpBB2.
Старый форум находится по адресу: forum2.domen.ru, а новый по адресу: forum.domen.ru. При этом старый лежит в папке:
/home/b/boshnet/forum2/public_html/ а новый в папке: /home/b/boshnet/forum/public_html/
Какой относительный путь указать при конвертации?
../../forum2/public_html/
Сохранятся ли моды, которые были установлены в phpBB2, после конвертации в phpBB3?
Будут сконвертированы только моды:
- File Attachment Mod by Acyd Burn
- Birthday by Niels
- Birthdays by TerraFrost
Почему после конвертации в phpBB3 в сообщениях вместо русских букв - кракозябры? Вариант: кракозябры не везде, а только в сообщениях некоторых пользователей.
Для корректного конвертирования необходимо, чтобы кодировка таблиц phpBB2 в базе данных соответствовала значению переменной $lang['ENCODING'] в файле language/lang_russian/lang_main.php. Варианты решения:
1) Сложный. Переконвертировать содержимое базы данных в кодировку, указанную в переменной $lang['ENCODING'].
2) Простой. Назначить переменной $lang['ENCODING'] значение, совпадающее с текущей кодировкой базы данных. При этом сообщения и другой контент на "старом" форуме могут стать нечитабельными, тем не менее, после конвертации читабельность восстановится.
3) Альтернативный: http://www.phpbbguru.net/community/topi ... ml#p245047
Перед конвертацией также рекомендуется проверить, какой язык по умолчанию установлен у всех пользователей, и изменить на русский, если это необходимо.
crash писал(а):savches
а это чем не нравится mysql_run_to_import_dumps.exe?
Да нет, мне всем она нравится. Но она ведь для иморта дампов только? (след. из названия). Ей экспортить в дамп тоже можно??
crash писал(а):какую кодировку указывали?
Прошу прощения, что сразу не указал. Дампекс сам правильно ее подхватил, написав - установлена кодировка соединения - utf-8. При разворачивании с помощью mysql ничего по поводу кодировки не указывал... может в этом дело? Нужно явно указать, что utf-8?
pir писал(а):При конвертировании выходит сообщение: <...>
После чего нажимаю на "Продолжить конвертирование" и после пары минут браузер предлагает сохранить файл index.php
Попробуйте слить базу форума к себе на компьютер и произвести конвертирование у себя. Затем зальете обратно на сервер.
Все получилось. Докладываюсь. Проблема была в настройках на локале.
После того, как в настройках mysqld прописал кодировку по умолчанию utf8, потом сделал mysqldump (да, пришлось скачать его win версию) на локале и скормил его в БД на сервере - все заработало как надо.
При дампе уже не указывал никаких доп. ключей вроде --character-set, все подхватывается из настроек по умолчанию. ;)
Colliding usernames were found on your old board. In order to complete the conversion please delete or rename these users so that there is only one user on your old board for each clean username.
Вопрос стандартный - что с этим делать? Стандартный ответ переименовать указанных юзеров не подходит, потому что их у меня около полутора тысяч. Погуглить я пробовал, сложилось впечатление, что такой вопрос вообще не поднимался.. База у меня постгрес, если это может быть полезным, старая база была в win1251, новая в utf8, естественно.
PS заодно, может подскажете, зачем движку вообще нужны эти клин-неймы? Вроде бы и без них все ок было. А тут добавили зачем-то, да еще обратную совместимость грохнули при этом...
Элегар писал(а):Вопрос стандартный - что с этим делать? Стандартный ответ переименовать указанных юзеров не подходит, потому что их у меня около полутора тысяч.
Вообще, меня именно этот в первую очередь интересует. Спрашивать-то спрашивали сто раз, а ответа нет. С кодировкой все ок, просто многие юзернеймы отличаются только регистром. Причем большинство из них имеет больше чем ноль постов.
Элегар
Можно попробовать сделать неправильно, но это не тестировалось и за последствия я не ручаюсь. Лучше проверьте сначала на нерабочей копии. Берете и отключаете проверку на конфликт имен пользователей:
rxu спасибо, но так не будет работать. Дело в том что в таблице users поле username_clean определено как уникальный индекс: CREATE UNIQUE INDEX users_username_clean ON users USING btree (username_clean).
Решил проблему, переписав функцию utf8_clean_string так, что она стала кроме "очистки" добавлять к результату crc32 исходной строки, таким образом делая разными клиннеймы для ников, отличающихся только регистрами. Может пригодится кому.
PS оказывается, в пхпбб2 поле username даже не было уникальным..
Добавлено спустя 2 минуты 4 секунды:
pps в пхпбб3, впрочем, тоже. Но там хоть клиннейм индексом сделали