Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

Проблемы кодировки и сортировки русских букв в MySQL

2007-05-07 · Posted in MySQL & PostgreSQL

Вы можете столкнуться с ситуацией некорректной сортировки кириллических данных, хранящихся в Вашей базе. В данном случае Вы столкнулись с проблемами используемой кодировки кириллицы. В качестве рабочей кодировки на наших серверах используется KOI8-R. Если Вы используете данные в CP1251, Вы можете воспользоваться перекодированием "на лету". Для этого используйте комманду

SET OPTION CHARACTER SET cp1251_koi8;

Ее удобнее всего расположить в начале Ваших скриптов непосредственно после коннекта к базе данных. В этом случае весь контент, идущий от клиента, будет автоматически перекодироваться из CP1251 в KOI8-R, для контента, поступающего к клиенту, будет выполняться обратное преобразование. В случае, если в базе у Вас уже есть данные в CP1251, Вам достаточно сделать дамп при помощи комманды

mysqldump –host=<host> –port=<port> –user=<user> –password <database> > <dump.file>

После этого добавьте комманду

SET OPTION CHARACTER SET cp1251_koi8;

в начало файла с дампом и восстановите базу коммандой

mysql –host=<host> –port=<port> –user=<user> –password < <dump.file>

Для более подробной информации см. документацию на MySQL: http://www.mysql.com/doc/ru/SET_OPTION.html, а также страницы руководства комманд mysql и mysqldump: man mysql и man mysqldump соответственно.

Leave a Reply