VS> "less /var/db/mysql/ask_1/wp_comments.MYD" показывает внутри таблицы вполне VS> читаемый текст в UTF-8. А вот сдампить эту базу корректно никак не могу. VS> Пробовал: VS> mysqldump --default-character-set=utf8 -r /var/tmp/test.sql ask_1 wp_comments VS> mysqldump --default-character-set=latin1 -r /var/tmp/test.sql ask_1 wp_comments VS> внутри /var/tmp/test.sql получается бнопня. Правда разная бнопня в зависимости VS> от значения ключа default-character-set.
Это обычное дело, когда приложения создают базы данных/таблицы, не специфицируя кодировку и наследуя системный дефолт, который у тебя может быть совсем не тот, что был у разработчика приложения.
В итоге данные лежат фактически в одной кодировке, а MySQL думает, что в другой. Вот это "думает" можно достаточно легко увидеть, как и системные дефолты:
mysql> show variables like 'char%'; mysql> show variables like 'collation%';
Их легко поменять в my.cnf, но это не повлияет на "уже кривые" таблицы. Для их починки гарантированно работает такой путь:
1) При помощи show table status \G и/или show create table/mysqldump выяснить, что думает MySQL о кодировке данных. Затем снова сдампить данные при помощи:
mysqldump --create-options --skip-set-charset --default-character-set=latin1, где вместо latin1 подставить кодировку, которая приписана к данным в таблицах - таким образом, получим дамп без перекодированных данных (бнопни), но с неправильной кодировкой в CREATE TABLE, которую затем меняем тупо sed-ом в дампе. И не забыв поправить в my.cnf дефолты сервера, заливаем дамп обратно.