forum.coppermine-gallery.net

Support => Русский (Russian) => Language Specific Support => cpg1.5.x Русский (Russian) => Topic started by: DennisVV on August 04, 2010, 06:46:46 am

Title: Опять про кодировку - имена юзеров при инте&
Post by: DennisVV on August 04, 2010, 06:46:46 am
Здравствуйте уважаемые!
была галерея 1.4.10, обновил ее до 1.5.6
БД была в cp1251, сделал дамп перегнав ее в utf8 и соответственно обратно залив уже в новой кодировке, т.е. в utf8, но кодировка стала utf8_general_ci (я думал она будет utf8_bin)

далее: есть форум phpbb-3.0.7 и все пользователи находятся в БД форума... БД форума в кодировке utf8_bin, и все юзвери галереи берутся из БД форума

теперь проблема: при интеграции галереи с форумом, все русские имена пользователей а также групп (тоже русскими буквами) которые берутся из форума отображаются знаками вопроса
до конвертации была проблема и с названиями категорий и альбомов, но после вот этих манипуляций http://forum.coppermine-gallery.net/index.php/topic,49624.msg238431.html#msg238431 категории и альбомы стали отображаться нормально, а вот юзеры и их группы никак не могу побороть, чтобы не было абракадабры...
нашел вот этот рецепт http://forum.coppermine-gallery.net/index.php/topic,28253.msg177319.html#msg177319 , но это для 1.4.х и таких строк в файле bridgemgr.php я не нашел
не думаю, что ошибка может возникать из-за того что форум в кодировке utf8_bin, а галерея в utf8_general_ci... или я ошибаюсь?

подскажите пожалуйста, как побороть сей недуг, т.е. чтобы имена пользователей на русском отображались корректно?
искренне надеюсь на вашу помощь!
заранее благодарен!
Title: Re: Опять про кодировку - имена юзеров при инт
Post by: DennisVV on August 16, 2010, 12:24:40 pm
ну неужели никто не сможет мне помочь??? :(
Title: Re: Опять про кодировку - имена юзеров при инт
Post by: Makc666 on August 20, 2010, 09:32:23 pm
но это для 1.4.х и таких строк в файле bridgemgr.php я не нашел

Для начала определитесь, пожалуйста, с какой версией галереи мы работаем, а то вы сначала говорите о 1.5.*, а потом о 1.4.*.

ну неужели никто не сможет мне помочь??? :(

Никто не мешает вам поменять сравнение для базы с unt8_general_ci на utf8_bin или наоборот.
Достаточно слить дамп базы в режиме совместимости с версией mysql40, создать новую базу с нужным сравнением и импортировать обратно.
Я везде используют utf8_general_ci.

Дальше Вам нужно установить phpMyAdmin, зайти через него в каждую базу по очереди и внутри выполнить запрос:
Code: [Select]
SHOW VARIABLES;
И разместить ответы тут.

Так же ознакомьтесь с темой: http://forum.coppermine-gallery.net/index.php/topic,66649.0.html, а точнее с её вторым постом.

В версии 1.5.* нет необходимости прописывать SET NAMES cp1251 везде подряд.
А начиная с версии 1.5.8 достаточно просто указать переменную в файле конфигурации.
Title: Re: Опять про кодировку - имена юзеров при инт
Post by: kastorskiy on July 19, 2011, 02:42:43 pm
Столкнулся с аналогичной проблемой, кириличные логины в коментариях отображаются вопросами (так же, вопросами они записываюся в базу, в таблицу cpg15x_comments, поле msg_author), причём сам коментарий в нормальной кодировке.
В моём случае, галерею и форум ставил с нуля, а не обновлял, у меня форум SMF 2.0 и галерея 1.5.12. Единая база форма и базы в кодировке UTF-8.
Title: Re: Опять про кодировку - имена юзеров при инт
Post by: kastorskiy on July 19, 2011, 02:47:10 pm
Единая база форма и базы в кодировке UTF-8.
Опечатался, база форума и галереи имелось в виду.

З.Ы. А почему тут нельзя редактировать сообщения хотя-бы в течении небольшого времени?
Title: Re: Опять про кодировку - имена юзеров при инт
Post by: Makc666 on July 26, 2011, 11:05:04 am
Попробуйте так...

Открыть файл:
./include/functions.inc.php

Найти функцию:
Code: [Select]
function cpg_db_query($query, $use_link_id = 0)
{
...
}

Перед строкой:
Code: [Select]
$result = mysql_query($query, $link_id);
Добавить код:
Code: [Select]
if ($CONFIG['dbcharset']) {
    mysql_query("SET NAMES '$CONFIG[dbcharset]'",$result);
}
   
Title: Re: Опять про кодировку - имена юзеров при инт
Post by: Ulenka on October 18, 2012, 08:45:18 am
Не помогла последняя рекомендация:(
Кодировка базы форума и галереи (в одной базе) одинаковая - utf8_bin.
Есть ли еще решение?
Title: Re: Опять про кодировку - имена юзеров при инт
Post by: Janvio on October 18, 2012, 10:57:48 am
Я тоже много пробывал, но вот только это решение помогло.
1. Находим в папке coppermine файл bridgemgr.php
в нем ищем строку:
$link = mysql_connect($_POST['db_hostname'], $_POST['db_username'], $_POST['db_password']);

сразу после нее дописываем еще одну строку:
mysql_query("SET NAMES UTF8", $link);

аналогично находим строку:
$link = @mysql_connect($BRIDGE['db_hostname'], $BRIDGE['db_username'], $BRIDGE['db_password']);

и добавляем сразу после нее:
mysql_query("SET NAMES UTF8", $link);

2. В файле coppermine\include\functions.inc.php ищем строку:
$result = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']);

после нее добавляем
mysql_query("SET NAMES UTF8", $result);

3. В файле coppermine\bridge\udb_base.inc.php ищем строку:
$this->link_id = mysql_connect($this->db['host'], $this->db['user'], $this->db['password']);

после нее добавляем:
mysql_query("SET NAMES UTF8", $this->link_id);