ilike locale problems on cygwin
От | Per Nyfelt |
---|---|
Тема | ilike locale problems on cygwin |
Дата | |
Msg-id | 200301201204.26302.per.nyfelt@resourcing.se обсуждение исходный текст |
Ответы |
Re: ilike locale problems on cygwin
|
Список | pgsql-cygwin |
I'm running Postgres 7.3.1 configured with --with-mb=UNICODE --with-locale on both Linux (Slackware 8.1) and Windows 2000 (cygwin 1.3.18 (0.69/3/2)) The data stored will be english, swedish, danish, norwegian, chinese and german so I want to use UNICODE encoding to be able to support that. I also need to be able to ignore cases (when the characters stored have such a thing as cases) so this is why i need locale support so that I can set one database that has swedish data to sv_SE, zh_CN for the one with chinese data etc. On Linux everything works fine, I am able to insert and retrieve data without problems. On Cygwin, however, when I'm using ilike(), lower() and upper() I don't get characters other than A-Z converted. databases are initialized as follows: initdb -E UNICODE --lc-ctype=sv_SE -D /usr/local/pgsql/data and created as follows: > psql -l List of databases Name | Owner | Encoding -----------+----------+---------- rpn | postgres | UNICODE template0 | postgres | UNICODE template1 | postgres | UNICODE Using a Java swing client (dbVisualizer) and the JDBC driver (pg73jdbc3.jar) to connect to the database: SHOW CLIENT_ENCODING returns the value "UNICODE" (my quotes) create table test( name varchar(30) ); insert into test values ('Övik'); select * from test where name ilike '%öv%'; gives me the expected result "Övik" (my quotes) So on Linux everything works fine: all conversions works as expected, but on Cygwin select * from test where name ilike '%öv%'; gives me no matches but select * from test where name ilike '%Öv%'; gives me the expected result "Övik" (my quotes) I've tried to initialize the db using both --lc-ctype=sv_SE and --lc-ctype=sv but neither of them gives me the correct result it still seems to be using standard C locale (my guess) for character conversion. The Cygwin environment is installed without any modifications. I just followed the instructions for setting up Postgres. /usr/share/locale has a subdir for sv and /usr/share/locale/locale.alias has the following value for swedish: sv_SE.ISO-8859-1 Any suggestions for how to make Postgres on Cygwin behave the same way as on linux with regards to locale settings and ilike would be most welcome. Best regards, Per
В списке pgsql-cygwin по дате отправления: