NLS_LANG (например, AMERICAN_AMERICA.UTF8) в клиентский енвайронмент и едем подключаться. Ну и на серверной стороне наш ораклоид чего-то настраивал, понятное дело.
А, ну, на всякий случай. Клиент был использовал для работы с базой OTL, который непосредственно на оракловых клиентских либах лежит. Во всяких PHP могут существовать и другие механизмы, я не в курсе.
Ну, извиняй, дорогой товарищ, тот конкретный код не был предназначен для работы конкретно на просторах 1/ гхм, сколько там сейчас осталось? седьмой? части суши.
Но сортировка работала. В том числе, и для русских. Впрочем, когда в качестве кодировки стояла CP1251 - тоже работало. Так что, дело в руках кодописателей, а не в кривости технологий.
Наверняка. Но, знаете, кесарю - кесарево. У нас с ним договор был, мы не раздаем кредиты, а он не торгует семечками. Может быть, и зря, как показала жизнь...
"UTF давно есть. Проблема в координации сервер-клиент."
Критики поведения MySQL 4.1 с множественными кодировками - а как вы предложили бы чтобы все это работало ?
В 4.0 все тривиально у сервера только одна кодировка у всех таблиц. в MySQL 4.1 может быть разная кодировка не только у баз данных и таблиц но даже и отдельных столбцов. Соответственно просто вести обмен с клиентом в кодировке X не получается.
Проблемы лезут от бойцовского подхода - заменю сервер и все и видимо даже не чтения Upgrade Notes. Для кликетов есть прикрасная команда
SET NAMES - SET NAMES win1251 и сервер будет воспринимать данные этого клиента в win1251 как и отдавать результаты.
> "смена аутентификации в C клиенте без договорённсти с теми кто использует это (например в php) - неуважение ко свему сообществу ..."
1) MySQL сервер можно настроить (--old-passwords) на использование только старой аутентификации если есть приложения с использованием старых либ.
2) PHP отлично компилится с использованием 4.1 клиентских либ. То что некоторые тормозные вендоры вроде RedHat продолжали поставлять софт скомпилированный с MySQL 3.23 или 4.0 не вина MySQL.