Re: UTF-8 Problem ? - Mailing list pgsql-sql

From Milen Kulev
Subject Re: UTF-8 Problem ?
Date
Msg-id 017001c6907b$982952e0$0a00a8c0@trivadis.com
Whole thread Raw
In response to UTF-8 Problem ?  ("Milen Kulev" <makulev@gmx.net>)
Responses Re: UTF-8 Problem ?
List pgsql-sql
Hi Thomas,
What actually the compile option --enable-recode is doing ?
I haven't compiled PG with this option for sure (perhaps is the option
On by defalt ?), but oyu advice hepled me:

postgres=# \encoding
UTF8
postgres=# \encoding
UTF8
postgres=# SET client_encoding = 'LATIN1';
SET
postgres=# \encoding
LATIN1
postgres=# PREPARE  stmt( int, int, int, varchar) as insert  INTO  part values ($1,$2,$3,$4);
PREPARE
postgres=#  EXECUTE  stmt (1, 1 , 1 , 'MAßßtab') ;
INSERT 0 0
postgres=#  EXECUTE  stmt (1, 1 , 1 , 'MAßßtab') ;
INSERT 0 0
postgres=#  EXECUTE  stmt (1, 1 , 1 , 'Grün')  ;
INSERT 0 0
postgres=#

postgres=#  SELECT filler from part where filler like 'MA%' or filler like 'Gr%' ;filler
---------MAßßtabMAßßtabGrün
(3 rows)


Regards. Milen

-----Original Message-----
From: Thomas Beutin [mailto:psql@laokoon.IN-Berlin.DE]
Sent: Thursday, June 15, 2006 2:45 PM
To: pgsql-sql@postgresql.org
Cc: Milen Kulev
Subject: Re: [SQL] UTF-8 Problem ?


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



pgsql-sql by date:

Previous
From: Volkan YAZICI
Date:
Subject: Re: UTF-8 Problem ?
Next
From: Thomas Beutin
Date:
Subject: Re: UTF-8 Problem ?