- крякозябли при восстановлении из бэкапа, angra, 18:14 , 19-Окт-07 (1)
>freebsd 6.0 mysql 5.1, кодировка стандартная (latin1) И что вы хотели? latin1 это ни разу не кириллица. >Кто-нибудь решал данную проблему? ага, в том числе и случай смешанных кодировок и восстановления из бэкапа. Готовое решение конечно можно дать, но желательно все-таки почитать для начала разделы доки мускула относящиеся к кодировкам, да и по самому mysqldump не помешает. Если структура таблиц не меняется, а данных много, то желательно почитать про select into outfile и load data infile
- крякозябли при восстановлении из бэкапа, dimau, 18:28 , 19-Окт-07 (2)
>>freebsd 6.0 mysql 5.1, кодировка стандартная (latin1) > >И что вы хотели? latin1 это ни разу не кириллица. >>Кто-нибудь решал данную проблему? > >ага, в том числе и случай смешанных кодировок и восстановления из бэкапа. >Готовое решение конечно можно дать, но желательно все-таки почитать для начала >разделы доки мускула относящиеся к кодировкам, да и по самому mysqldump >не помешает. Если структура таблиц не меняется, а данных много, то >желательно почитать про select into outfile и load data infile Знаю что latin1 не кириллица. Меня вопрос интересует ,можно ли восстановить данные, которые были испорчены такими действиями. (кодировка по-умолчанию, mysqldump > data.sql ; mysql < data.sql)
- крякозябли при восстановлении из бэкапа, angra, 19:27 , 19-Окт-07 (3)
Ну кто же так делает, хотя бы rename table сделали или на дубликате базы экспериментировали.Зависит от того как данные писались в базу(set names, причем как изначально, так и в момент mysql < data.sql) и типа полей(varchar или binary). Скорее всего вам поможет или iconv или правильно выставленные тип поля, кодировка и set names. Подбирать параметры можно либо наугад, либо логически высчитать всю последовательность перекодировок
- крякозябли при восстановлении из бэкапа, angra, 19:45 , 19-Окт-07 (4)
для примера рассмотрим самый простой вариант. Поле varchar в latin1, \s показывает latin1 во всех позициях и именно в таком варианте данные вводились в базу и являлись просматриваемыми. Локаль у вас однобайтная. mysqldump без лишних опций пишет в юникоде. Значит вам надо использовать "iconv -f utf8 -t latin1" на файл дампа.
- крякозябли при восстановлении из бэкапа, dimau, 12:42 , 20-Окт-07 (5)
>для примера рассмотрим самый простой вариант. Поле varchar в latin1, \s показывает >latin1 во всех позициях и именно в таком варианте данные вводились >в базу и являлись просматриваемыми. Локаль у вас однобайтная. mysqldump >без лишних опций пишет в юникоде. Значит вам надо использовать "iconv >-f utf8 -t latin1" на файл дампа. Спасибо за совет.
|