Thread: 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.