Ключевые слова:mysql, charset, cp1251, koi8r, database, rus, (найти похожие документы)
Date: Mon, 03 Feb 2003 16:27:17 +0500
From: Andy Ice <Andy_Ice@p13.f8.n5012.z2.fidonet.org>
Newsgroups: ftn.ru.php
Subject: Русские кодировки и сортировка в MySQL
>>4.1. При выборке из базы не правильно сортирует русcкие буквы.
>
Для правильной работы ORDER BY и GROUP BY сервер MySQL должен знать текущий набор
символов. К сожалению, версии 3.х и 4.х MySQL могут иметь только _один_ charset на
все базы одновременно. Задается в /etc/my.cnf:
[mysqld]
default-character-set=koi8_ru
Проверить можно так:
mysql> show variables like 'character_sets' ;
mysql> show variables like 'character_set' ;
В этом случае все символьные поля _во_всех_ таблицах будут храниться в KOI8-R. Для
того, чтобы работали клиенты ODBC из под Windows необходимо, чтобы первым SQL
оператором в Windows-приложении была команда:
SET CHARACTER SET cp1251_koi8 ;
Тогда включится перекодировка "на лету". Hа сервере будет KOI8-R, а на клиенте
Windows-1251 и все сортировки будут работать. Эту же команду можно прописать в
MyODBC 3.5х "SQL command on connect" (STMT=), она выполнится автоматически.
Другой вариант -- не использовать KOI8-R, а хранить базы в Windows-1251 и сообщить
об этом серверу, прописав в /etc/my.cnf:
[mysqld]
default-character-set=cp1251
> Alexander Voropay