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]   Go Down

Author Topic: проблема с отображением буквы "ш"  (Read 21083 times)

0 Members and 1 Guest are viewing this topic.

vld400

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
проблема с отображением буквы "ш"
« on: December 23, 2007, 09:24:59 pm »

Добрый день,

проапгрейдил с 1.3.1 до 1.4.14.
Все работает нормально, база установлена как UTF8.
Таблицы так же настроены как UTF8.
Веб страница автоматически отображается в UTF8.

При изменении названия альбома , комментария или описания файла , не корректно отображается  прописная буква "ш" , вместо нее показываются два символа "�?". Причем  если я введу букву "Ш" как заглавную, то она отображается корректно. Все остальные русские буквы показываются корректно.
Помогите понять в чем может быть проблема   и как ее можно решить.

PHP Version 4.3.10-22.

С Уважением,

Владимир Синяков
Logged

vld400

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Re: проблема с отображением буквы "ш"
« Reply #1 on: December 24, 2007, 11:26:33 am »

так же я получил следующую информацию от коллег :

1. К таблицам сравнения выставлены в UTF8. Реально в UTF8 только таблица users, остальные таблицы в latin1. Coppermine использует latin1 по умолчанию, если в явном виде не прописывать иное.
Этот недостаток уже был замечен ранее.  - это так?

2. Переустановка с нуля, при явном указании использовать UTF8.
А имеенно строка 187 в файле /htdocs/gallery/include/functions.inc.php:
mysql_query("SET NAMES 'utf-8'",$result);
Сейчас эта строка добавлена и закомментирована. - почему ? и это поможет если создать дамп, сконвертировать в UTF8 в перезалить дамп , ?
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: проблема с отображением буквы "ш"
« Reply #2 on: December 24, 2007, 02:54:58 pm »

Описывайте Ваш процесс апгрейда, т.к. как Вы апгрейдили, всё детально и дотошно.

Какой у Вас mysql?

Строка
Code: [Select]
mysql_query("SET NAMES 'cp1251'",$result);нужна только тогда, когда MySQL-кодировка, к примеру UTF-8 Unicode (utf8), отличается от кодировки "Сравнение" базы галереи, к примеру "cp1251_general_ci".
Когда они совпадают, то данная строка не нужна.
Logged

vld400

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Re: проблема с отображением буквы "ш"
« Reply #3 on: December 24, 2007, 06:12:40 pm »

Описывайте Ваш процесс апгрейда, т.к. как Вы апгрейдили, всё детально и дотошно.

Какой у Вас mysql?

Строка
Code: [Select]
mysql_query("SET NAMES 'cp1251'",$result);нужна только тогда, когда MySQL-кодировка, к примеру UTF-8 Unicode (utf8), отличается от кодировки "Сравнение" базы галереи, к примеру "cp1251_general_ci".
Когда они совпадают, то данная строка не нужна.

процесс апгрейда был следующим:
Сделал дамп и бэкап всех файлов ,
удалил все файлы кроме "config.inc.php" и альбомов
скопировал новый дистрибутив
запустил upgrade.php
после этого index.php
и все заработало кроме названий альбомов и заголовка.

Таблицы были созданы в UTF8, броузер показывает UTF8
Но так как количество альбомов небольшое и комментариев к снимкам то же не велико,
принял решение перебить руками.

До того как перебивать руками посмотрел на таблицы , до перебивания русский язык показывался нормально через MySQLAdmin,
после перебивания несмотря на то что в MySQLAdmin стоит так же UTF8, русский язык не читается нормально.
Хотя через Coppermine php все страницы показываются нормально. За исключением одной маленькой буквы "ш".

MySQL стоит

VERSION INFO :
------------------
PHP version: 4.3.10-22 - OK
------------------
mySQL version: 4.1.11-Debian_4sarge5-log
------------------
Coppermine version: 1.4.14(stable)

Причем что самое интерестное что когдя я в отдельную папку скопировал чистый дистрибутив , взял ту же базу , но названия таблиц с другим префиксом, запустил инсталляцию , то название альбома могу вводить без проблем . Буква "ш" показывается корректно.

У меня есть дамп базы cgp131 в 1251.
Что делать ? куда смотреть?
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: проблема с отображением буквы "ш"
« Reply #4 on: December 24, 2007, 09:19:37 pm »

После запуска upgrade.php нужнь было запустить файл charsetmgr.php в корневом каталоге галереи.
Чтобы перевести галерею из любой кодировки в новый общепринятый стандарт UTF-8, нужно запустить файл charsetmgr.php в корневом каталоге галереи.
Почитайте тему:
Перейти с CP-1251 нa UTF-8?
http://forum.coppermine-gallery.net/index.php?topic=24323.0
Logged

vld400

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Re: проблема с отображением буквы "ш"
« Reply #5 on: December 25, 2007, 06:19:19 pm »

После запуска upgrade.php нужнь было запустить файл charsetmgr.php в корневом каталоге галереи.Почитайте тему:
Перейти с CP-1251 нa UTF-8?
http://forum.coppermine-gallery.net/index.php?topic=24323.0

Почитал,
конвертировать пробовал еще до обращения на форум. Результат - если строка содержит слово с буквой "ш" то все что идет далее обрезается включая слово с буквой "ш".
В данной ветке так и не нашел как решить проблему , может быть не внимательно читал. Помогите , ткните пальцем , плиз.
сайт с некорреткной буквой: magistr-rbim.ru/gallery

Но я бы хотел обратить внимание на следующее , взял и создал базу в UTF8.
начал инсталяцию с нуля! все работает в UTF8. И та же поблема с буквой "ш".
посмотреть imrb.ru/gallery.
Поэтому вопрос касается новой инсталяции!

так же в настройках конфигурации при указании языка стоит ""Russian" при попытке выбрать "Russian UTF8" после сохранения все равно остается первый выбор . Это все равно или нет? Если одно и тоже , то зачем дважды указывать один и тот же язык в списке. в выборе языка показа, практически все языки указыны дважды, один раз без UTF8 , второй раз с ней.

Logged

vld400

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Re: проблема с отображением буквы "ш"
« Reply #6 on: December 25, 2007, 10:16:42 pm »

может быть проблема еще в том, что
в настройках php окружения сервера , на котором работает сайт я обнаружил следующее:
iconv
iconv support enabled
iconv implementation glibc
iconv library version 2.3.2

Directive Local Value Master Value
iconv.input_encoding ISO-8859-1 ISO-8859-1
iconv.internal_encoding ISO-8859-1 ISO-8859-1
iconv.output_encoding ISO-8859-1 ISO-8859-1

поможет ли проблема в данных коддировках ?
Поможет ли решение переопределение данных на UTF8, либо с помощью php.ini либо .htaccess файла?
Подскажите как корректнее будет решить данную проблему
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: проблема с отображением буквы "ш"
« Reply #7 on: December 26, 2007, 02:10:39 pm »

1. К таблицам сравнения выставлены в UTF8. Реально в UTF8 только таблица users, остальные таблицы в latin1. Coppermine использует latin1 по умолчанию, если в явном виде не прописывать иное. Этот недостаток уже был замечен ранее.  - это так?
Галерея создаёт таблицы в той кодировке, в котором была создана база данных!
Т.е., если вы хотите, чтобы таблицы были в соавнении utf8_general_ci, вы должны изначально создать базу данных со сравнением utf8_general_ci!

процесс апгрейда был следующим:
Сделал дамп и бэкап всех файлов ,
удалил все файлы кроме "config.inc.php" и альбомов
скопировал новый дистрибутив
запустил upgrade.php
после этого index.php
и все заработало кроме названий альбомов и заголовка.

Таблицы были созданы в UTF8, броузер показывает UTF8
Ваш процесс апгрейда должен был быть примерно такой:
1. Сделать дамп (экспорт) базы данных.
2. Создать новую базу данных в utf8_general_ci
3. Залить дамп (импорт) в новую базу данных.
4. Залить новые файлы
5. Запустить upgrade.php
6. После этого index.php

так же в настройках конфигурации при указании языка стоит ""Russian" при попытке выбрать "Russian UTF8" после сохранения все равно остается первый выбор . Это все равно или нет? Если одно и тоже , то зачем дважды указывать один и тот же язык в списке. в выборе языка показа, практически все языки указыны дважды, один раз без UTF8 , второй раз с ней.
Этот вопрос уже обсуждался.
Ответ тут -> "Сбивается язык галереи " -> http://forum.coppermine-gallery.net/index.php?topic=47286.msg228954#msg228954

может быть проблема еще в том, что
в настройках php окружения сервера , на котором работает сайт я обнаружил следующее:
iconv
iconv support enabled
iconv implementation glibc
iconv library version 2.3.2

Directive Local Value Master Value
iconv.input_encoding ISO-8859-1 ISO-8859-1
iconv.internal_encoding ISO-8859-1 ISO-8859-1
iconv.output_encoding ISO-8859-1 ISO-8859-1

поможет ли проблема в данных коддировках ?
Поможет ли решение переопределение данных на UTF8, либо с помощью php.ini либо .htaccess файла?
Подскажите как корректнее будет решить данную проблему
Нет. С данным случаем это не связано вообще никак.
« Last Edit: June 23, 2008, 09:56:51 am by Makc666 »
Logged

vld400

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Re: проблема с отображением буквы "ш"
« Reply #8 on: December 27, 2007, 08:23:08 am »

Галерея создаёт таблицы в той кодировке, в котором была создана база данных!
Т.е., если вы хотите, чтобы таблицы были в соавнении utf8_general_ci, вы должны изначально создать базу данных со сравнением utf8_general_ci!
именно так и была  создана база  и настроена со сравнением utf8_general_ci!
Quote
Ваш процесс апгрейда должен был быть примерно такой:
1. Сделать дамп (экспорт) базы данных.
2. Создать новую базу данных в utf8_general_ci
3. Залить дамп (импорт) в новую базу данных.

Именно все так и было !
Прошу протестировать - взять новую базу данных со сравнением utf8_general_ci!, и установить на нее 1.4.14! и посмотреть что получится .

попробовать в название галлереи или альбома и внести слово содержащее букву "ш".
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: проблема с отображением буквы "ш"
« Reply #9 on: December 27, 2007, 12:53:35 pm »

именно так и была  создана база  и настроена со сравнением utf8_general_ci!
Именно все так и было !
Прошу протестировать - взять новую базу данных со сравнением utf8_general_ci!, и установить на нее 1.4.14! и посмотреть что получится .
попробовать в название галлереи или альбома и внести слово содержащее букву "ш".
Я всё вчера ещё раз проверил, прежде чем писать.
Если база создана в utf8_general_ci, то таблицы тоже создаются со сравнением utf8_general_ci.

Буква "ш" тоже нормально везде отображается.
Logged

vld400

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Re: проблема с отображением буквы "ш"
« Reply #10 on: December 27, 2007, 01:23:51 pm »

У меня начало отображаться только после создания базы в UTF8,
а так же добавлению строки после 186 в файле /htdocs/gallery/include/functions.inc.php:
mysql_query("SET NAMES 'utf-8'",$result);
Без прямого указания - галерея работает не корректно с буковй "ш".
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: проблема с отображением буквы "ш"
« Reply #11 on: December 28, 2007, 11:42:23 am »

У меня начало отображаться только после создания базы в UTF8,
а так же добавлению строки после 186 в файле /htdocs/gallery/include/functions.inc.php:
mysql_query("SET NAMES 'utf-8'",$result);
Без прямого указания - галерея работает не корректно с буковй "ш".
А какая у Вас "MySQL-кодировка" и "Сопоставление соединения с MySQL"?
Logged

RedPage

  • Coppermine regular visitor
  • **
  • Offline Offline
  • Gender: Male
  • Posts: 82
  • Doping
    • Эскизы татуировок.
Re: проблема с отображением буквы "ш"
« Reply #12 on: December 28, 2007, 12:28:36 pm »

У меня начало отображаться только после создания базы в UTF8,
а так же добавлению строки после 186 в файле /htdocs/gallery/include/functions.inc.php:
mysql_query("SET NAMES 'utf-8'",$result);
Без прямого указания - галерея работает не корректно с буковй "ш".


А можно скрин базы например вот такой.
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: проблема с отображением буквы "ш"
« Reply #13 on: December 28, 2007, 01:34:28 pm »

А можно скрин базы например вот такой.
Я вам могу без скриншота ответить, что если нет строки
Code: [Select]
mysql_query("SET NAMES 'utf-8'",$result);, то изображение будет как у Вас на картинке.
Если строка есть и остальное правильно настроено, то будут видны русские буквы.
Logged

Gover

  • Coppermine newbie
  • Offline Offline
  • Posts: 4
Re: проблема с отображением буквы "ш"
« Reply #14 on: June 15, 2008, 12:27:50 pm »

Подскажите решили ли вы эту проблему с буквой "ш". У меня после обновления до версии 1.4.18 такая же ситуация. Совет по поводу явного  указания кодировки не работает. Получается, что в базе данные все равно в win1251. База вглядит аналогично как в ответе 12. Помогите разобраться! Версия Sql  5.0.30, кодировка базы данных по-умолчанию utf8, до обновления все работало как положено.
Logged

vld400

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Re: проблема с отображением буквы "ш"
« Reply #15 on: June 16, 2008, 09:47:49 am »

Подскажите решили ли вы эту проблему с буквой "ш". У меня после обновления до версии 1.4.18 такая же ситуация. Совет по поводу явного  указания кодировки не работает. Получается, что в базе данные все равно в win1251. База вглядит аналогично как в ответе 12. Помогите разобраться! Версия Sql  5.0.30, кодировка базы данных по-умолчанию utf8, до обновления все работало как положено.
в общем добавил строку после строки 186 в файле /htdocs/gallery/include/functions.inc.php:
mysql_query("SET NAMES 'utf-8'",$result);
Без прямого указания - галерея работает не корректно с буквой "ш".
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: проблема с отображением буквы "ш"
« Reply #16 on: June 23, 2008, 10:00:17 am »

в общем добавил строку после строки 186 в файле /htdocs/gallery/include/functions.inc.php:
mysql_query("SET NAMES 'utf-8'",$result);
Без прямого указания - галерея работает не корректно с буквой "ш".
При правильной настройке сервера всё работает правильно без какого-либо указания.
Подробно описано в теме "Кодировка в MySQL 4.1.* и MySQL 5.*" -> http://forum.coppermine-gallery.net/index.php/topic,49624.0.html

Если у Вас не работает без прямого указания, а при этом база находится в utf8_general_ci, значит кодировка по умолчанию сервера отличная от кодировке utf8.

Это достаточно легко выяснить, если Вы нам скопируете результаты запроса:
Code: [Select]
SHOW VARIABLES;
Какие переменные нужно скопировать, описано в теме по ссылке выше.
Logged

FIXXER

  • Coppermine newbie
  • Offline Offline
  • Posts: 1
Re: проблема с отображением буквы "ш"
« Reply #17 on: August 17, 2008, 07:00:41 pm »

У меня версия 1.4.19
Устанавливал на MySQL с кодировкой utf8_unocode_ci
В галерее вместо букв "ш" и "И" выводятся иероглифы.
Попытался добавить после 186 строки предложенный код, но тогда отказался работать сайт, ссылаясь на невозможность подключиться к БД.

Как все таки можно решить эту проблему?
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: проблема с отображением буквы "ш"
« Reply #18 on: August 18, 2008, 03:11:14 pm »

У меня версия 1.4.19
Устанавливал на MySQL с кодировкой utf8_unocode_ci
В галерее вместо букв "ш" и "И" выводятся иероглифы.
Попытался добавить после 186 строки предложенный код, но тогда отказался работать сайт, ссылаясь на невозможность подключиться к БД.

Как все таки можно решить эту проблему?
Вынужден перенаправить Вас в тему Кодировка в MySQL 4.1.* и MySQL 5.*.
Там всё написано...
Logged
Pages: [1]   Go Up
 

Page created in 0.039 seconds with 19 queries.