Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программное обеспечение Linux и FreeBSD (http://forum.oszone.net/forumdisplay.php?f=11)
-   -   Разные кодировки в MySQL (http://forum.oszone.net/showthread.php?t=41782)

Red-Hat 29-11-2004 12:18 276393

Разные кодировки в MySQL
 
Привет всем!

Подскажите пожалуйста как правильно настроить MySQL чтобы правильно обрабатывалось содержимое базы, в разных таблицах которой инфа записна русским языком но в разных кодировках, в частности в koi8r и cp1251?

Если использовать настройки кодировок по умолчанию - то всё отображается нормально но сортировка средствами мускуля обрабатывается неправильно. Если в настроики кодировок в
my.cnf установить одну из кодировок то сортировка начинает работать но теряется работоспособность со второй базой.

ПО: Red-Hat-9+MySQL-4-1-7+php-3.4.3+Perl-5.8.0+Apache-2.0.52
всё взято с официальных сайтов производителей соответствующего ПО.

При установке default_caracter_set = koi8r в my.cnf апач выдает следующую ошибку:

File '/usr/share/mysql/charsets/?.conf' not found (Errcode: 2)

Character set '#7' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index' file

Хотя обе эти кодировки вкомпилированы и указаны во всех конфигурационных файлах и лежет в указанной в ошибке директори.

Заранее спасибо!!!

archy 01-12-2004 10:53 276947

Попробуй покрутить SET CHARACTER SET=
Лучше для этого глянуть в доках, там подробно написано...

sbum 17-12-2004 21:24 281048

Проверь конф. файл апача httpd.conf,
MySQL - от туда берет все кодировки

mar 17-12-2004 22:49 281065

sbum
не дизенформируйте публику, pls:
во-первых, не в russian apache не ставится кодировки страниц по-умолчанию
во-вторых, mysql - СУБД, которая, хотя и используется часто из web-приложений, но может жить и своей личной жизнью (использоваться, скажем почтовиками и т.д. и т.п.) и в httpd.conf даже не заглядывает

sbum 18-12-2004 14:18 281206

mar
Во первых - я не дизенформирую публику, я ни когда не видел russian apache.
Во вторых - от куда тебе известно, какой apache, стоит у задавшего вопрос!!!
И в третьих - у меня БД вертиться 90% под иврит, и поверь мне, это куда посложнее, чем работать со стандартными кодировками.

И в заключении - у меня такая-же была ошибка, на страницу выдавало все в иероглифах, пока в конф. не прописал кодировки иврита!!!

mar 18-12-2004 16:15 281232

повторяю: mysql может жить и без апача
Проблему с кодировками mysql, ежели обратиться к документации, по-дефолту решают так, как уже написал archy
В заключение - небольшая заметка от Alexander Voropay
Русские кодировки и сортировка в MySQL
Цитата:

Для правильной работы 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
В заключение - ссылки на документацию

archy 20-12-2004 22:16 281921

sbum
Видимо эти жестокие проблемы с кодировакми мешают вам прочитать вопрос ;)


Время: 16:39.

Время: 16:39.
© OSzone.net 2001-