crash писал(а):ленуська
вся проблема что у вас не происходит конвертация, а в базу с utf8 вноятся данные в win кодировке
К сожалению суть проблемы куда глубже и сложнее :(
Основная проблема в том что пхпбб при авторизации и других операциях использует некое поле phpbb_users.username_clean, которое на первый взгляд может показаться лишь strtolower(phpbb_users.username).. Но к огномному моему удивления это не так.. и даже не mb_strtolower(phpbb_users.username).
Для получения username_clean написана функция function utf8_clean_string($text) (includes/utf/utf_tools.php), задачи которой в ёё текущей реализации мне совсем не понятны... ну не понимаю я какого хрена преобразовывать русскую "е" в аналогичную по написанию английскую "e".. сколько моей кровушки было выпито пока я дошел до этого :(
Вобщем я вижу два решения:
- В базе ЦМС имя кирилистическое, при добавлении пользователя в базу форума нужно корректно "по-форумски" заполнять username_clean, для получения которого нужно использовать выше вспомненную сомнительную "очищающую" функцию.
- Второй вариант - доработать функции авторизации, чтобы они использовали при сравнении, например mb_strtolower(phpbb_users.username). Возможно это криво.. но я другого решения не вижу.
Добавлено спустя 4 минуты 37 секунд:crash писал(а):Сделать конвертацию в utf8 перед добавлением в форум, например с помощью iconv()
Может я ошибаюсь, но насколько я понимаю достаточно просто правильно выставить кодировки таблиц (для форума uft-8, для cms - cp1251) и кодировку клиента (предполагаю что добавление идет из скриптов cms, значит set names cp1251)
Добавлено спустя 9 минут 8 секунд:- Код: Выделить всё
$test = "железнаяледи";
echo $test."<br>";
echo utf8_clean_string($test);
Получаем:
- Код: Выделить всё
железнаяледи
жeлeзнaялeди
Найдите отличия.. невидно?? А они есть :)

- коды символов двух сходных по написанию строк
- phpbb.gif (1.58 Кб) Просмотров: 288
Добавлено спустя 9 минут 19 секунд:Надобы тему назвать по-другому.. например: "Совместная регистрация русских имен на CMS и phpbb3"