Проблемы кодировки и сортировки русских букв в MySQL
Вы можете столкнуться с ситуацией некорректной сортировки кириллических данных, хранящихся в Вашей базе. В данном случае Вы столкнулись с проблемами используемой кодировки кириллицы. В качестве рабочей кодировки на наших серверах используется KOI8-R. Если Вы используете данные в CP1251, Вы можете воспользоваться перекодированием “на лету”. Для этого используйте комманду
1 |
SET OPTION CHARACTER SET cp1251_koi8; |
Ее удобнее всего расположить в начале Ваших скриптов непосредственно после коннекта к базе данных. В этом случае весь контент, идущий от клиента, будет автоматически перекодироваться из CP1251 в KOI8-R, для контента, поступающего к клиенту, будет выполняться обратное преобразование. В случае, если в базе у Вас уже есть данные в CP1251, Вам достаточно сделать дамп при помощи комманды
1 |
mysqldump --host=<host> --port=<port> --user=<user> --password <database> > <dump.file> |
После этого добавьте комманду
1 |
SET OPTION CHARACTER SET cp1251_koi8; |
в начало файла с дампом и восстановите базу коммандой
1 |
mysql --host=<host> --port=<port> --user=<user> --password < <dump.file> |