Thread: Inserting é in psql - invalid byte sequence for encoding "UNICODE": 0xe9
I created a new database with encoding UTF8, connected using psql, and ensured the client encoding is also UTF8 (Unicode). But when I try to insert characters like 'é', I get this error: ERROR: invalid byte sequence for encoding "UNICODE": 0xe9 Isn't this possible with psql? Hopefully it's not necessary to insert with values like '\xC3\xA1' instead (which I tried, but the values got inserted as is and weren't converted). CSN __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
On Wed, Mar 15, 2006 at 01:33:56AM -0800, CSN wrote: > I created a new database with encoding UTF8, connected > using psql, and ensured the client encoding is also > UTF8 (Unicode). But when I try to insert characters > like 'é', I get this error: > > ERROR: invalid byte sequence for encoding "UNICODE": > 0xe9 Well, the message is correct, that's not a valid unicode byte sequence. > Isn't this possible with psql? Hopefully it's not > necessary to insert with values like '\xC3\xA1' > instead (which I tried, but the values got inserted as > is and weren't converted). Well, if your client was a UTF-8 client, it would type those bytes when you did a 'é'. However, since it looks like you're actually using Latin-1 in your client, perhaps you should say: set client_encoding=latin1; (Personally I never understood why psql doesn't try to detect the client encoding from the locale. Defaulting to the server encoding is almost certainly wrong. Note psql, not libpq.) Have a nice day, -- Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/ > Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a > tool for doing 5% of the work and then sitting around waiting for someone > else to do the other 95% so you can sue them.
Attachment
CSN wrote: > I created a new database with encoding UTF8, connected > using psql, and ensured the client encoding is also > UTF8 (Unicode). But when I try to insert characters > like 'é', I get this error: > > ERROR: invalid byte sequence for encoding "UNICODE": > 0xe9 Something isn't UTF-8, possibly your terminal settings? If you have a text-editor that lets you set character-encoding then you can try feeding the query into psql from a file. If that works then it's your terminal. I always have endless trouble with this sort of stuff myself, so you're not alone. -- Richard Huxton Archonet Ltd
CSN <cool_screen_name90001@yahoo.com> writes: > I created a new database with encoding UTF8, connected > using psql, and ensured the client encoding is also > UTF8 (Unicode). But when I try to insert characters > like '�', I get this error: > ERROR: invalid byte sequence for encoding "UNICODE": > 0xe9 Whatever you're typing in is not actually sending UTF8 to psql. You probably need to be fooling with the settings of xterm or whatever window system you're working in. regards, tom lane