[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