The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Perl и MySQL проблема с кодировкой"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Perl и MySQL проблема с кодировкой"  +/
Сообщение от Frei email(ok) on 30-Окт-09, 16:46 
Здравствуйте.

При переносе сайта на хостинг от исполнителя возникла ситуация, когда CMS получала информацию из базы данных в неверной кодировке. Несколько других CMS работают на этом же хостинге нормально, phpMyAdmin так же получает данные в нормальном виде.

Задали вопрос исполнителю:

"
При переносе сайта, вами было указано, что кодировка базы данных и дампа - cp1251. Нами была создана база данных на хостинге с указанной кодировкой и произведён импорт данных, но сайт по-прежнему не правильно отображает символы. В базе данных, при работе через phpMyAdmnin тексты читаются нормально. Как решить эту проблему?
"
Ответ:

"
Это происходит потому что perl получает данные в другой кодировке (не cp1251)
По всей видимости mysqlclient на сервере (через библиотеки которого работает perl)
по прежнему настроен на другую кодировку (скорее всего UTF-8,
т.к. phpMyAdmin по умолчанию использует именно UTF-8)
"

Возможна ли такая ситуация? Не всё ли равно на какую кодировку настроена mysqlclient? Что теперь под каждую CMS заводить свой mysqlclient? :)

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Perl и MySQL проблема с кодировкой"  +/
Сообщение от angra (ok) on 31-Окт-09, 08:59 
Если дамп действительно залит корректно, то исполнитель лепит тупые отмазки. Если он не догадался при инициализации работы с базой сделать SET NAMES это его проблемы, если не умеет работать с юникодом(а при работе с БД там есть нюансы) в perl это опять таки его проблемы.
Но перед тем как ставить ему претензии убедитесь что дамп залит действительно корректно. Для этого нужен консольный mysql клиент (обычно он всегда ставится вместе с сервером) и эмулятор терминала способный менять кодировку(например konsole или gnome-terminal). Далее выставляем различные русские кодировки в терминале, делаем соответствующий set names и select с какой-нибудь таблицы с русскими символами. Если русский во всех кодировках отображается правильно(за исключением пары символов типа кавычек), то дамп залит корректно.

А вообще правильно снятый дамп всегда корректно заливается через стандартный консольный клиент ибо содержит и определения таблиц и указание своей кодировки, так что если это не так, то опять таки вина разработчика.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Perl и MySQL проблема с кодировкой"  +/
Сообщение от Frei email(ok) on 02-Ноя-09, 14:17 
Правильно ли я понимаю?:

Кодировка работы mysqlclient с базой данных не имеет значения? Главное чтобы правильно работали скрипты с mysqlclient?

Пример:

1. База cp1251
2. MySQL и mysqlclient работают по UTF8
3. Скрипты perl работают с базой по cp1251

Всё должно работать корректно?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Perl и MySQL проблема с кодировкой"  +/
Сообщение от angra (ok) on 02-Ноя-09, 15:13 
Что есть mysqlclient? Консольный клиент по имени mysql знаю, либу libmysql знаю, даже mysql_client_test знаю, а вот mysqlclient не знаю :)
Есть еще другие факторы, которые могут вызывать проблему, однако действовать надо методично. Когда выполните указанную мной в предыдущем способе проверку, тогда и перейдем к ним.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру