Откат информационной базы и трудность с шифровками
Рубрика: PHP кодингРаздел: MySQL
дата:23-06-2009

Сейчас я желаю поведать об 1 граблях на каковые сам не так давно наступил.
В том числе чуть-чуть постыдно сознаваться, но я столкнулся с трудностью шифровок в информационной базе и некоторое время вообщем не имел возможности взять в толк, в чем дело.
А обстановка была таковая. Я написал заметку «jqGrid: редактирование табличных данных при помощи inline редакторов» и создал демонстрационную страницу.
Для того, чтоб таблица не была бессодержательный, я создал дамп моей локальной базы и через phpMyAdmin залил его в базу на сервере.
При всем этом практически никаких трудностей с шифровками не появлялось вообщем. Т.е. у меня повсеместно была указана utf-8, она и применялась.
Здесь встает рядовая трудность.
Действовать с таблицей сможет кто угодно, а вручную смотреть за тем, кто и что написал, у меня нет ни времени, ни стремления.
Потому я сделал задачку для Cron, каковая временами выполняет команду
- mysql –user=db_user –password=db_pass db_name < /path_to_dump_file/dump.sql
Т.е. просто возобновляет базу из файла с дампом.
И через некое время я отмечаю (поточнее мне сообщают в комментах, спасибо Big_Shark), что часть записей в таблице отображается кракозябрами.
Сначала я поразмыслил, что дело в некотором бразузере, но оказалось, что и в FireFox, и в Opera, и в Safari, и в IE практически никаких трудностей с шифровками нет.
Ну и в всяком случае данные на сервер отправляются AJAX запросом, ну а в них постоянно употребляется UTF-8.
Сообразил в чем дело я лишь опосля того как предпринял попытку на локальном компе вернуть базу из дампа (через командную строчку). Как говориться, mysql необходимо очевидно показывать шифровку.
Чтобы достичь желаемого результата в командную строчку добавляем параметр --default_character_set=utf8
- mysql –user=db_user –password=db_pass –default_character_set=utf8 db_name < /path_to_dump_file/dump.sql
На локальном сервере данный параметр принял решение делему, но на сервере хостера – нет.
Потому в начало дампа базы я добавил запрос
- SET CHARACTER SET utf8;
И он вполне принял решение делему.
Как говориться, мораль у данной истории обычная. Когда становишься очень уверенным в себе и перестаешь смотреть за мелочами, возникают трудности
Happy coding!
| <<< Предыдущая статья |
