Win1250 database under linux

Started by Damir Bijuklicalmost 21 years ago4 messagesbugs
Jump to latest
#1Damir Bijuklic
damirbijuklic@yahoo.com

Hi.

I have ecountered strange behaviour with postgres 8
under linux so I am reporting this as a bug. I haven't
compiled postgres myself because it is on hosted
server but it is an options if it would solve this
problem.

The problem i'm having seems to be known but i don't
know if there is a workaround. Functions upper() and
lower() don't change value for Croatian national
characters under linux (others probably as well, but i
havent tested). Operator ILIKE doesn't work correctly
either.

I have tried to reporeduce bug under windows version
of postgres by transfering database via backup/restore
but the windows version is working correctly.

I had to write some pretty ugly query logic as a
temporary workaround for searching national
characters...

Damir

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Damir Bijuklic (#1)
Re: Win1250 database under linux

Damir Bijuklic <damirbijuklic@yahoo.com> writes:

The problem i'm having seems to be known but i don't
know if there is a workaround. Functions upper() and
lower() don't change value for Croatian national
characters under linux (others probably as well, but i
havent tested). Operator ILIKE doesn't work correctly
either.

Sounds like you are using the wrong locale and/or encoding settings.
Since you have not said what you are using, it's hard to offer anything
more specific than that.

regards, tom lane

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tom Lane (#2)
Re: Win1250 database under linux

Damir Bijuklic <damirbijuklic@yahoo.com> writes:

I'm using WIN1250 locale on both databases.

Does your Linux platform even have such a locale? Mine doesn't.
("locale -a" will show you what is supported.) I suspect your
machine is not recognizing the LANG setting and is falling back
to behave as though the locale is POSIX.

Client is java, and no special SET commands are
executed on connection... Don't know other specifich
which would be useful.

AFAIK, Java does not do WIN1250, only Unicode.

You would probably be best off using Unicode (UTF8) encoding and some
suitable locale setting (again, see "locale -a") on the Unix platform.

regards, tom lane

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tom Lane (#3)
Re: Win1250 database under linux

Damir Bijuklic <damirbijuklic@yahoo.com> writes:

My linux machine has following relevant locales:

hr_HR
hr_HR.iso88592
hr_HR.utf8
hrvatski

I'd recommend using hr_HR.utf8 plus UTF8 database encoding.
You'll need to re-initdb in order to install that as the
database locale :-(

regards, tom lane