Advanced search  

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Pages: 1 2 [3] 4   Go Down

Author Topic: Кодировка - проблемы - перейти с CP-1251 нa UTF-8  (Read 98900 times)

0 Members and 1 Guest are viewing this topic.

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону
Re: И сново кодировка
« Reply #40 on: March 05, 2010, 12:47:18 pm »

Посмотрите еще кодировку у файлов темы и какой тег там прописан в коде.
Logged

Ozz999

  • Coppermine newbie
  • Offline Offline
  • Posts: 5
Re: И сново кодировка
« Reply #41 on: March 05, 2010, 12:54:09 pm »

Разобрался. Скачал заново галерею и залил по новой язык русский.

Просто нашёл на форуме, что нельзя править блокнотом. А я как раз там пару слов изменил. Ну сума сойти с это галереи. Как то с кодировками разработчики не подумали
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону
Re: И сново кодировка
« Reply #42 on: March 05, 2010, 02:13:05 pm »

Дело в том, что блокнот сохраняет в UTF-8 BOM, поэтому я порекомендовал notepad++
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: И сново кодировка
« Reply #43 on: March 05, 2010, 10:12:25 pm »

Ну сума сойти с это галереи. Как то с кодировками разработчики не подумали

Да нет в ней никаких проблемы если честно.

Если у Вас база данных установлена "неверно" или вы где-то напортачили ранее, то это не значит, что проблемы в галереи.
Logged

BigMichael

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 22

Прошу помощи. Решил написать в эту тему, так как тут тема ближе всего к тому, что нужно исправить.
После переноса галереи на новый хостинг вижу то, что во вложении. А именно, русские названия всех категорий и альбомов в виде знаков вопроса. Галерея и база имеют одинаковую кодировку cp1251, как и русификатор галереи. Переносил галерею следующим образом:
1. Сделал дамп БД на старом хостинге.
2. Залил его на новый хостинг. В PHPmyAdmin проконтролировал правильность переноса - всё на русском, кодировка правильная - ср1251. В файл русификации добавлен
3. Скопировал все файлы галереи со старого хостинга на новый.
4. Перепрописал пути к БД в соответствующем файле, база подключилась успешно.

Подскажите, пожалуйста, что где можно поправить, чтобы устранить эту проблему.
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page

Подскажите, пожалуйста, что где можно поправить, чтобы устранить эту проблему.
Попробуйте внести изменения из вот этого поста:
http://forum.coppermine-gallery.net/index.php/topic,49624.msg238431.html#msg238431

При этом в строке:
Code: [Select]
$CONFIG['dbcharset'] = "";нужно указать кодировку:
Code: [Select]
$CONFIG['dbcharset'] = "cp1251";
« Last Edit: April 07, 2010, 09:58:07 pm by Makc666 »
Logged

BigMichael

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 22

Makc666, спасибо за ответ и за личное сообщение. К сожалению, не могу ответить вам также в личку, а тема, на которую вы привели ссылку, уже закрыта. Поэтому пишу сюда. В моём случае переменная character_set_database не совпадает с другими переменными character_set_*, вот то что есть у меня:
Code: [Select]
character_set_client utf8
character_set_connection utf8
character_set_database cp1251
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
collation_connection utf8_general_ci
collation_database cp1251_general_ci
collation_server latin1_swedish_ci

Соответственно, нужен "патч" для файла ../include/functions.inc.php
К сожалению, я не программист, поэтому не могу понять в какое место кода этого файла нужно вставить указанный патч:
Code: [Select]
diff -crbBN include/functions.inc.php include/functions.inc.php
*** include/functions.inc.php   Tue Nov  6 07:48:00 2007
--- include/functions.inc.php   Wed Jan  9 12:44:29 2008
***************
*** 184,189 ****
--- 184,192 ----
          }
          if (!mysql_select_db($CONFIG['dbname']))
                  return false;
+                 if ($CONFIG['dbcharset']) {
+                   mysql_query("SET NAMES '$CONFIG[dbcharset]'",$result);
+                 }
          return $result;
  }

Прошу "ткнуть носом" в нужное место кода, куда это надо вставить. И прошу прощения за дилетанство, обещаю исправиться. Файл ../include/config.inc.php скорректировал успешно, указав там кодировку базы данных галереи - cp1251
Logged

ich

  • Coppermine newbie
  • Offline Offline
  • Posts: 7

Прошу "ткнуть носом" в нужное место кода, куда это надо вставить. И прошу прощения за дилетанство, обещаю исправиться. Файл ../include/config.inc.php скорректировал успешно, указав там кодировку базы данных галереи - cp1251
В файле functions.inc.php поиском по запросу ($CONFIG['dbname'] найдете функцию:
Code: [Select]
function cpg_db_connect()
{
        global $CONFIG;
        $result = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']);
        if (!$result) {
                return false;
        }
        if (!mysql_select_db($CONFIG['dbname']))
                return false;
        return $result;
}
меняете на
Code: [Select]
function cpg_db_connect()
{
        global $CONFIG;
        $result = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']);
        if (!$result) {
                return false;
        }
        if (!mysql_select_db($CONFIG['dbname']))
                return false;
                if ($CONFIG['dbcharset']) {
                mysql_query("SET NAMES '$CONFIG[dbcharset]'",$result);
                }
        return $result;
}
Logged

BigMichael

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 22

Спасибо большущее! Теперь всё исправил, всё работает как надо.
Logged

BigMichael

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 22

Снова аналогичная проблема, уже с другой галереей. Картинка с проблемой в приложении. Имена пользователей, написанные русскими буквами отображаются в виде знаков вопроса.
Все вышеописанные действия предприняты:

1. По результату запроса к БД show variables имею следующее:
Quote
character_set_client    utf8
character_set_connection    utf8
character_set_database    latin1
character_set_filesystem    binary
character_set_results    utf8
character_set_server    latin1
character_set_system    utf8
character_sets_dir    /usr/share/mysql/charsets/
collation_connection    utf8_general_ci
collation_database    latin1_swedish_ci
collation_server    latin1_swedish_ci

Затем:
1. "Пропатчен" файл functions.inc.php, как описано ранее.
2. Добавлена строка с кодировкой БД в файл config.inc.php

Результат на скрине. Помогите, пожалуйста. Что и где еще нужно скорректировать?
Logged

BigMichael

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 22

В настройках галереи выставлен Русский язык и кодировка символов cyrillic (Windows-1251), в языковом файле russian.php написано:
Quote
$lang_charset = 'utf-8';
И что-то я во всех этих переменных совсем запутался...
Logged

BigMichael

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 22

Коллеги, я всё понимаю. Не форумом единым, как говорится... Но не по неделе же ждать ответа на простой в общем-то вопрос. Ведь именно здесь чуть ли не единственная возможность получить квалифицированный совет по коппермайну на русском...
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page

Снова аналогичная проблема, уже с другой галереей. Картинка с проблемой в приложении. Имена пользователей, написанные русскими буквами отображаются в виде знаков вопроса.
Все вышеописанные действия предприняты:

А что значит аналогичная проблема? В прошлой проблеме у Вас все записи из базы данных отображались не на русском. Сейчас отображаются только имена пользователей. Такое обычно происходит, когда галерея интегрирована с другим приложением.

В текущей базе данных галереи, имена пользователей нормально отображаются, при просмотре черзе phpMyAdmin?
Logged

BigMichael

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 22

В текущей базе данных галереи, имена пользователей нормально отображаются, при просмотре черзе phpMyAdmin?
Галерея интегрирована с СМФ. Насчёт просмотра имён в БД - какую таблицу конкретно смотреть? Конкретно этот пользователь, у которого вместо ника отображаются ??????, некоторое время назад сменил отображаемое имя. И оно везде видно корректно, и в БД, и в комментах, знаки "?" только в этих местах:
Главная > Галереи пользователей > ??????
Случайные файлы - ??????'s Gallery
Последние добавления - ??????'s Gallery

Судя по количеству символов, галерея пытается написать его старый ник, которого уже нет.
Для наглядности вот ссылка на галерею: http://bowmania.ru/coppermine/index.php?cat=10010
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page

Нагляднее всего видно тут:
http://bowmania.ru/coppermine/profile.php?uid=10

Поступите так.
Закройте ваш сайт с помощью .htaccess от всех, кроме себя (вашего IP адреса)
Code: [Select]
Order deny,allow
Deny from All
Allow from <ВАШ_IP>

Потом отключите интеграцию.
Code: [Select]
http://yourdomain.tld/your_coppermine_folder/bridgemgr.php
И откройте ссылку:
http://bowmania.ru/coppermine/profile.php?uid=10

Как будет после этого будет имя отображаться?
Logged

BigMichael

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 22

В галерее есть только один зарегистрированный пользователь. Это я, администратор, который устанавливал галерею. Все остальные пользователи - это пользователи форума смф, в связке с которым работает галерея. Информация о пользователях берется из БД форума. Соответственно, при отключенной интеграции такого пользователя: http://bowmania.ru/coppermine/profile.php?uid=10 не существует.
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page

В галерее есть только один зарегистрированный пользователь. Это я, администратор, который устанавливал галерею. Все остальные пользователи - это пользователи форума смф, в связке с которым работает галерея. Информация о пользователях берется из БД форума. Соответственно, при отключенной интеграции такого пользователя: http://bowmania.ru/coppermine/profile.php?uid=10 не существует.
Значит

или кодировка базы данных вашего форума и вашей галереи разные,

или в форуме проблемы с кодировкой из-за неправильного подключения форума к базе данных - другими словами - т.к. форум работает с этой же базой данных, а кодировка, исходя из вашего примера выше,
Code: [Select]
character_set_connection    utf8
character_set_database    latin1
там разная, то возможно, что в форуме не используется подобных патч, который Вы наложили на галерею. А это значит, что уже давно данных форума в базу данных заносятся неверно.

Какой из этих вариантов у Вас - это вы только можете ответить.
Logged

BigMichael

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 22

Значит
или кодировка базы данных вашего форума и вашей галереи разные,
или в форуме проблемы с кодировкой из-за неправильного подключения форума к базе данных - другими словами - т.к. форум работает с этой же базой данных, а кодировка, исходя из вашего примера выше,
Code: [Select]
character_set_connection    utf8
character_set_database    latin1
там разная, то возможно, что в форуме не используется подобных патч, который Вы наложили на галерею. А это значит, что уже давно данных форума в базу данных заносятся неверно.

Какой из этих вариантов у Вас - это вы только можете ответить.

Как мне это определить? В самом форуме проблем с кодировкой нет никаких, там всё везде корректно отображается. Везде там прописана cp1251. Конечно же, в форуме не используется патч для галереи. Там делались свои патчи на другие файлы. В результате везде в форуме используется cp1251. Проблема именно в галерее, по всей видимости. Несоответствие кодировок. Но как это правильно продиагностировать и исправить, до меня так и не доходит. Все проделанные до этого действия принесли свои положительные результаты, но до конца проблема не устранена. К тому же обнаружилась ещё одна нестыковка по кодировкам - она во вложенном файле.  Названия групп пользователей в админке галереи отображаются знаками вопроса. Очень прошу объяснить, что и где нужно ещё исправить, чтобы всё это устранить. Готов предоставить для этого все необходимые данные. Помогите, пожалуйста.
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page

В базе данных у вас должны быть ДВЕ базы. Одна для форума, другая для галереи.
Сами базы созданы в каких кодировках?
А так же таблицы в этих базах в правильных кодировках находятся?
Должно быть cp1251_general_ci

Я бы начал с наведения порядка с этим.
Logged

BigMichael

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 22

База у меня одна для форума и для галереи. Просто внутри БД есть таблицы с разными префиксами. Что касается форума, то там всё и везде в cp1251_genereal_ci. А вот с галереей везде разное. Я прописывал патчи для некоторых файлов галереи, об этом сообщал ранее. Но непосредственно кодировку языка в таблицах галереи не делал. Если это сделать просто руками, прописав в PHPMyAdmin нужную кодировку, это поможет? Или нужны какие-то другие действия?
Logged
Pages: 1 2 [3] 4   Go Up
 

Page created in 0.035 seconds with 19 queries.