[Comm] postgresql 8.1.8 и трабл с ILIKE
Michael Bochkaryov
=?iso-8859-1?q?misha_=CE=C1_rattler=2Ekiev=2Eua?=
Пт Июн 6 17:30:08 MSD 2008
Alex Gorbachenko пишет:
> On Fri, 6 Jun 2008 13:48:38 +0400
> Anatoliy wrote:
>
>> То есть все базы тоже должны быть в одной кодировке?
>> Если нет , то какие параметры можно для конкретной базы изменять?
>> Ну кодировку клиента можно же менять? А кодировку базы отличать от
>> кодировки при инсталации нельзя? Раньше, вроде, было можно. Все в кои8
>> было , а эта база в WIN1251 работала и не тужила.
>
> если initdb создал кластер в koi8-r, то базы будут работать в любой
> кодировке, отличной от koi-8r. но некоторые операции будут вылполняться
> некорректно. например, order by по char() или text() полям. like/ilike
> тоже попадают в число "некоторых".
В принципе, можно еще использовать функции из подключаемой библиотеки
nls_strings, но я даже не уверен, что под 8.3 она успешно соберется.
Когда-то мне пришлось воспользоваться этой либой, чтобы работать с БД,
которую в кодировке, отличной от дефолтной, создали.
> в вашем случае все базы нужно держать в utf8, а для тех, которым нужны
> другие кодировки для хранения данных, выделять другие серверы. и на
> этих серверах инициализировать кластер в нужной однобайтной кодировке.
От себя добавлю, что клиентское приложение может вполне нормально
работать в WIN1251, если после коннекта скомандовать "set
client_encoding to 'WIN1251'".
--
Michael Bochkaryov
Подробная информация о списке рассылки community