mysqldump и кодировка
По умолчанию у mysqldump (как минимум на моем сервере) стоит default-character-set=utf8. Если база, например, в кодировке cp-1251, то mysqldump выдаст результат в нечитабельном виде в тех местах, где встречается кириллица.
Лечится:
mysqldump --default-character-set=latin1
Для уверенности можно зайти в консоль mysql и посмотреть:
mysql> show variables; +---------------------------------+----------------------------------------+ | Variable_name | Value | +---------------------------------+----------------------------------------+ ..... | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql/share/mysql/charsets/ | ....
Можно было включить и cp1251, но поскольку в этой базе не использовалась сортировка, то latin1 меня пока вполне устраивает.
February 20th, 2006 at 9:52
переходить от юникода - плохая тенденция. Лучше перекодировать данные из ЦП или КОИ в юникод.
February 20th, 2006 at 11:16
2 Michael de`OZ
Не всегда есть смысл в Unicode. Например, софт писанный под вынь 95/98 скорее всего Юникода не поймет, так как в те времена он не был распостранен. А старое ПО еще довольно плотно используется, особенно в госучереждениях…
February 21st, 2006 at 8:53
2tolix - полностью согласен. Кроме того, любой текст для несчастных диалапщиков будет в 2 раза длиннее..
June 1st, 2007 at 6:09
Если задача для вэб то мне кажется лучше сразу данные в кодировке cp1251 если под десктоп то unicode