Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток всемогущий All!
Прошу не пинать меня сапогами, посмотрел темы, посмотрел FAQ, посмотрел статьи но решения моей проблемы не нашел.
Ситуация такая: Меня попросили обновить сайт. Сам сайт лежит на забугорном сервере. Доступ к MySQL через учетку пользователя. MySQL версии 5.0.22. Стоит phpmyadmin версии 2.8.2.4.
MySQL-кодировка: UTF-8 Unicode (utf8).
Сопостовление с utf8_general_ci.
Текстовые поля с кириллицей используют сопостовление CP1251_general_ci.
Сайт был сделан на Joomla 1.0.15. Материалы сайта на трех языках: русский-итальянский-английский.
На самом сайте кириллица отображается нормально, но при просмотре таблиц через phpmyadmin отображается вопросительными знаками.
Но не в этом основная проблема. Пробема в том, что когда делаю дамп базы посредством phpmyadmin на локальный диск, вся кириллица так и сохраняется в виде вопросительных знаков.
Подскажите, пожалуйста, как решить данную проблему.
Заранее благодарен!
Отредактированно Kaylang (19.08.2010 20:01:05)
Неактивен
На всякий случай переменные MySQL, касающиеся кодировок.
character set client utf8
(Глобальное значение) latin1
character set connection utf8
(Глобальное значение) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Глобальное значение) latin1
character set server latin1
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_general_ci
(Глобальное значение) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
Неактивен
А покажите, пожалуйста, SHOW CREATE TABLE какой-нибудь и скажите, какой
SET NAMES делает сайт. Полное ощущение, что все-таки везде latin1 и нужно
действовать так, как написано в статье
Неактивен
CREATE TABLE `test_table` ( `test1` VARCHAR( 255 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL , `test2` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ) ENGINE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_general_ci;
Вот создал тестовую таблицу.
Относительно SET NAMES сайта, напомните, пожалуйста, где посмотреть.
Добавлено: В настройках Joomla 1.0.15 указано "ru_RU.CP1251".
Отредактированно Kaylang (20.08.2010 01:35:40)
Неактивен
Тестовую таблицу не интересно. Интересна таблица с данными. Тоже 1251?
И интересно, если подключиться phpMyAdmin с кодировкой 1251 — Вы сможете
прочитать данные? Хотя бы в виде кракозябл?
Неактивен
paulus написал:
Тестовую таблицу не интересно. Интересна таблица с данными. Тоже 1251?
То бишь из phpmyadmin командой INSERT вставить данные в таблицу? Попробую.
И интересно, если подключиться phpMyAdmin с кодировкой 1251 — Вы сможете
прочитать данные? Хотя бы в виде кракозябл?
Если я меняю кодировку в браузере на cp1251 интерфейс phpmyadmin отображается крокозяблами, но данные так и отображаются занаками вопроса.
Неактивен
Выполнил такой запрос:
CREATE TABLE `jos_cat_test` ( `id` int(11) NOT NULL auto_increment, `parent_id` int(11) NOT NULL default '0', `title` varchar(50) NOT NULL default '', `name` varchar(255) NOT NULL default '', `image` varchar(100) NOT NULL default '', `section` varchar(50) NOT NULL default '', `image_position` varchar(10) NOT NULL default '', `description` text NOT NULL, `published` tinyint(1) NOT NULL default '0', `checked_out` int(11) unsigned NOT NULL default '0', `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00', `editor` varchar(50) default NULL, `ordering` int(11) NOT NULL default '0', `access` tinyint(3) unsigned NOT NULL default '0', `count` int(11) NOT NULL default '0', `params` text NOT NULL, PRIMARY KEY (`id`), KEY `cat_idx` (`section`,`published`,`access`), KEY `idx_section` (`section`), KEY `idx_access` (`access`), KEY `idx_checkout` (`checked_out`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=21 ; INSERT INTO `jos_cat_test` (`id`, `parent_id`, `title`, `name`, `image`, `section`, `image_position`, `description`, `published`, `checked_out`, `checked_out_time`, `editor`, `ordering`, `access`, `count`, `params`) VALUES (1, 0, 'первая', 'категория', '', '2', 'left', '', 1, 0, '0000-00-00 00:00:00', NULL, 1, 0, 0, 'imagefolders=*2*'), (2, 0, 'вторая', 'категория', '', '1', 'left', '', 1, 0, '0000-00-00 00:00:00', NULL, 1, 0, 0, 'imagefolders=*2*');
В phpmyadmin данные отображаются корректно. На сайте проверить не могу, он сейчас выключен.
Неактивен
Нене, в phpMyAdmin при подключении есть возможность выбрать кодировку. Вот там
выберите cp1251 и попробуйте сделать выборку (чтение, не запись) данных — они долж-
ны прочитаться. И тогда из этого phpMyAdmin можно сделать бэкап данных.
Неактивен
paulus написал:
Нене, в phpMyAdmin при подключении есть возможность выбрать кодировку. Вот там
выберите cp1251
Вы говорите о "Сопоставление соединения с MySQL"?
Неактивен
Ммм... да, думаю, подойдет
Неактивен
paulus написал:
Ммм... да, думаю, подойдет
Вопрос, меняя сопоставление я не убью ненароком данные?
Неактивен
Увы, изменяю сопоставление на cp1251_general_ci, страница обновляется и в поле сопоставление опять значение utf8_general_ci.
Неактивен
А там какой-нибудь кнопочки «войти» или «применить» нету?
Неактивен
paulus написал:
А там какой-нибудь кнопочки «войти» или «применить» нету?
Нет, к сожалению, нету.
Неактивен
Благодарю всех откликнувшихся!
Проблема решена.
Неактивен