Обсуждение: encoding problem
folks
i have problems with encodings
the scenario is:
database: CREATE DATABASE "testLatin"
WITH OWNER = owner1
ENCODING = 'LATIN9';
test table:
CREATE TABLE test
( nombre varchar(20))
WITH OIDS;
ALTER TABLE test OWNER TO marcelo;
data:
nombre
---------
"maricón"
"ñañoso pícaro"
test statement
select * from test where upper(nombre) like 'ÑA%'
not data found !!!
any ideas?
best regards
MDC
pd: Unicode encoding has same result.
___________________________________________________________
1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
http://correo.yahoo.com.ar
marcelo Cortez <jmdc_marcelo@yahoo.com.ar> writes: > i have problems with encodings You need to make sure that the database locale matches what you want, not only the encoding. See the "Localization" chapter in the docs: http://www.postgresql.org/docs/8.1/static/charset.html regards, tom lane
--- Tom Lane <tgl@sss.pgh.pa.us> escribió: > marcelo Cortez <jmdc_marcelo@yahoo.com.ar> writes: > > i have problems with encodings > > You need to make sure that the database locale > matches what you want, > not only the encoding. > > See the "Localization" chapter in the docs: > http://www.postgresql.org/docs/8.1/static/charset.html > > regards, tom lane > > ---------------------------(end of > broadcast)--------------------------- > TIP 5: don't forget to increase your free space map > settings > ___________________________________________________________ 1GB gratis, Antivirus y Antispam Correo Yahoo!, el mejor correo web del mundo http://correo.yahoo.com.ar
On 12/1/05, marcelo Cortez <jmdc_marcelo@yahoo.com.ar> wrote:
> i have problems with encodings
PostgreSQL case conversion functions is a little bit buggy.
(Especially for Latin-N and Unicode encodings.) I've prepared a patch
[1] to fix a similar problem for Latin5 encoding. It wasn't tested so
much but works for your problem too:
template1=# CREATE DATABASE "testLatin" ENCODING = 'LATIN9';
CREATE DATABASE
template1=# \c testLatin
You are now connected to database "testLatin".
testLatin=# CREATE TABLE test
testLatin-# ( nombre varchar(20));
CREATE TABLE
testLatin=# COPY test FROM stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> maricón
>> ñañoso pícaro
>> \.
testLatin=# select * from test where upper(nombre) like 'ÑA%';
nombre
---------------
ñañoso pícaro
(1 row)
[1] You can find related patch (and discussion) @
http://archives.postgresql.org/pgsql-patches/2005-11/msg00173.php
address. It fixes case conversion problems for ILIKE, upper() and
lower() functions.
Regards.