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

Author Topic: проблема с отображением буквы "ш"  (Read 21090 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.046 seconds with 20 queries.