Advanced search  

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

Pages: 1 2 [3] 4   Go Down

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

0 Members and 2 Guests 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.041 seconds with 19 queries.