Hi Milen,
Milen Kulev wrote:
> Hi Listers,
> I want to insert some german specific characters (umlaut characters) into a table, but I am getting the following
> Error message:
> postgres=# EXECUTE stmt (1, 1 , 1 , 'Grün') ;
> ERROR: invalid UTF-8 byte sequence detected near byte 0xfc
>
> Or
>
> postgres=# EXECUTE stmt (1, 1 , 1 , 'MAßßtab') ;
> ERROR: invalid UTF-8 byte sequence detected near byte 0xdf
>
> Here are my object/statement definitions :
>
> A) PREPARE stmt( int, int, int, varchar) as insert INTO part values ($1,$2,$3,$4);
>
> B)
> postgres=# \d+ part
> Table "public.part"
> Column | Type | Modifiers | Description
> --------+------------------------+-----------+-------------
> id1 | integer | not null |
> id2 | integer | not null |
> id3 | integer | not null |
> filler | character varying(200) | |
>
> C)
>
> postgres=# l\l
> List of databases
> Name | Owner | Encoding
> ------------+-------+-----------
> db1 | user1 | SQL_ASCII
> postgres | pg | UTF8
> template0 | pg | UTF8
> template1 | pg | UTF8
>
>
> How to solve my problem ?
You should insert only correct utf8 strings or set the client encoding
correctly:
SET client_encoding = 'LATIN1';
or
SET client_encoding = 'LATIN9';
IIRC postgresql must be compiled with --enable-recode to support this.
Regards,
-tb