Всем привет,
как определить в какой кодировке сохранены данные в MySQL?
история такова
переносил сайт на интернет, возникли проблемы с кодировками.
вначале переносил базу данных с помошью дампа созданного phpMyAdmin и импортировал ее с помошью phpMyAdmin.
при это возникал интересный глюк на сайте ноды и меню которое хранилось в таблицах отображалось нечитаемыми иероглифами.
а меню генерируемые скриптами читались.
любые попытки сменить кодировку в броузере к успеху не приводили.
сами материалы отлично читались из phpMyAdmin.
почитав материал http://drupal.ru/node/5968 решил попробовать перенести дамп созданный не с помошью phpmysqlAdmin а с помошью
mysqldump а затем импортировал его (благо что на nic.ru есть доступ SSH) mysql -uимя_пользоваля -pпароль --database=база_данных <./dump.txt
и о чудо весь контент включая хранимый в MySQL оказался читаем.
интересно что и в первом случае и во втором случае в описании таблиц указано utf8_general_ci, но при этом в первом случае данные таблиц читаемы в первом случае при отображении кодировки UTF8 а во втором случае при отображении кодировки win-1251 при просмотре phpMyAdmin.
помню еще во времена drupal 4.5 были проблемы с поиском по сайту если данные хранились не в кодировке UTF8 поэтому хотелось бы сейчас определится в какой кодировке у меня данные хрантяся в MySQL чтобы в будущем избежать проблем.
P.S. я не силен в знаниях по apache но есть подозрения что онпроизводит какое то конвертирование данных при импорте из файла с помошью phpmyadmin
Комментарии
как и в том примере что вы приводите (по ссылке) -
1) mysqldump исполузет кодировку по умолчанию для соединения и т.д (и соответственно сравнения)
если у вас сервер собран по умолчанию в UTF8 (и настроен соотв. образом) а база физически в utf то mysqldump выдаст вам utf8 если вы предварительно ему чего-нибудь типа SET NAMES codepage не скормите.
2) phpmyadmin использует ту которую вы укажите. укажите олбанскую - будет на ней Если у вас нет доступа к конфигам сервера - настройки по умолчанию вы сменить не сможете. другой вопрос что кодировки и сравниения можно устанавливать на уровне соединения.