Опять про кодировку - имена юзеров при инте& Опять про кодировку - имена юзеров при инте&
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Опять про кодировку - имена юзеров при инте&

Started by DennisVV, August 04, 2010, 06:46:46 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DennisVV

Здравствуйте уважаемые!
была галерея 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... или я ошибаюсь?

подскажите пожалуйста, как побороть сей недуг, т.е. чтобы имена пользователей на русском отображались корректно?
искренне надеюсь на вашу помощь!
заранее благодарен!

DennisVV

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

Makc666

Quote from: DennisVV on August 04, 2010, 06:46:46 AM
но это для 1.4.х и таких строк в файле bridgemgr.php я не нашел

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

Quote from: DennisVV on August 16, 2010, 12:24:40 PM
ну неужели никто не сможет мне помочь??? :(

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

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

И разместить ответы тут.

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

В версии 1.5.* нет необходимости прописывать SET NAMES cp1251 везде подряд.
А начиная с версии 1.5.8 достаточно просто указать переменную в файле конфигурации.

kastorskiy

Столкнулся с аналогичной проблемой, кириличные логины в коментариях отображаются вопросами (так же, вопросами они записываюся в базу, в таблицу cpg15x_comments, поле msg_author), причём сам коментарий в нормальной кодировке.
В моём случае, галерею и форум ставил с нуля, а не обновлял, у меня форум SMF 2.0 и галерея 1.5.12. Единая база форма и базы в кодировке UTF-8.

kastorskiy

Quote from: kastorskiy on July 19, 2011, 02:42:43 PM
Единая база форма и базы в кодировке UTF-8.
Опечатался, база форума и галереи имелось в виду.

З.Ы. А почему тут нельзя редактировать сообщения хотя-бы в течении небольшого времени?

Makc666

Попробуйте так...

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

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


Перед строкой:
$result = mysql_query($query, $link_id);

Добавить код:
if ($CONFIG['dbcharset']) {
    mysql_query("SET NAMES '$CONFIG[dbcharset]'",$result);
}
   

Ulenka

Не помогла последняя рекомендация:(
Кодировка базы форума и галереи (в одной базе) одинаковая - utf8_bin.
Есть ли еще решение?

Janvio

Я тоже много пробывал, но вот только это решение помогло.
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);