Thread: UTF8 Vs Latin9 and valid encoding.
Hello, I am using postgres 8.1 for windows and have the following dilema. I have 2 databases, one encoded in UTF-8 and one in Latin9. In both DBs I can create the following test table: CREATE TABLE "holaniño" ( nombre varchar(5), "titúlo" varchar(10) ) WITHOUT OIDS; Then in both DBs I can execute the following SQL: select * from holaniño where titúlo = 'compania' HOWEVER, when I change the SQL to: select * from holaniño where titúlo = "compañia" (changed the N to a Ñ in the filter) I receive the error msg: ERROR: invalid UTF-8 byte sequence detected near byte 0xf1 Where in the LATIN9 db, there is no problem. Isn't UTF-8 the same as UNICODE where it encapsulates all other coding schemes including latin9? Any insight would be greatly apreciated. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Hi, Marcelo, Marcelo . wrote: > I receive the error msg: > ERROR: invalid UTF-8 byte sequence detected near byte > 0xf1 > > Isn't UTF-8 the same as UNICODE where it encapsulates > all other coding schemes including latin9? Yes, it is. But it seems that your client and the server disagree on the encoding they use. I think the problem is that your client (psql, I presume) uses latin9 to communicate with the server, but the server assumes the client uses utf8. in psql, you can use \encoding to show the encoding psql uses, and "show client_encoding;" to show the encoding the server thinks the client uses. Try one of: SET client_encoding TO LATIN9; -- Tell server: client uses latin9 \encoding LATIN9; -- Set clients encoding You can also set UTF-8 here, the server will convert between the client and database encoding (but it needs to know). HTH, Markus -- Markus Schaber | Logical Tracking&Tracing International AG Dipl. Inf. | Software Development GIS Fight against software patents in EU! www.ffii.org www.nosoftwarepatents.org
Hello, Thanks for your reply. When I execute show client_encoding; I get UNICODE. However, up to know I was using pgAdmin III Query and EMS... you gave me the idea to use psql, where I noticed something interesting: \encoding UTF8 show client_encoding; UTF8 So this seems to be OK.. However when I type áéíóúñ on screen I see ßØ«·± Why would this be? Thanks again --- Markus Schaber <schabi@logix-tt.com> wrote: > Hi, Marcelo, > > Marcelo . wrote: > > > I receive the error msg: > > ERROR: invalid UTF-8 byte sequence detected near > byte > > 0xf1 > > > > Isn't UTF-8 the same as UNICODE where it > encapsulates > > all other coding schemes including latin9? > > Yes, it is. > > But it seems that your client and the server > disagree on the encoding > they use. > > I think the problem is that your client (psql, I > presume) uses latin9 to > communicate with the server, but the server assumes > the client uses utf8. > > in psql, you can use \encoding to show the encoding > psql uses, and "show > client_encoding;" to show the encoding the server > thinks the client uses. > > Try one of: > > SET client_encoding TO LATIN9; -- Tell server: > client uses latin9 > > \encoding LATIN9; -- Set clients encoding > > You can also set UTF-8 here, the server will convert > between the client > and database encoding (but it needs to know). > > HTH, > Markus > > > > -- > Markus Schaber | Logical Tracking&Tracing > International AG > Dipl. Inf. | Software Development GIS > > Fight against software patents in EU! www.ffii.org > www.nosoftwarepatents.org > > ---------------------------(end of > broadcast)--------------------------- > TIP 1: if posting/reading through Usenet, please > send an appropriate > subscribe-nomail command to > majordomo@postgresql.org so that your > message can get through to the mailing list > cleanly > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com