# JDBC Charset / Jboss/Postgres



## nocturn (21. Aug 2009)

Hallo,

wenn ich auf eine Postgre-Datenbank einfüge bekomme ich Charset-Fehler.
Ich kann aber den Charset der Datenbank nicht ändern.

Kann ich dem Treiber mitteilen das er die Strings nach Win1252 konvertieren soll?

LG


----------



## sparrow (21. Aug 2009)

1) sendest du direkt SQL-Befehle oder verwendest du eine Middleware wie Hibernate?

2) Wie lautet die genaue Fehlermeldung (lieber zuviel als zuwenig)?


----------



## nocturn (21. Aug 2009)

sparrow hat gesagt.:


> 1) sendest du direkt SQL-Befehle oder verwendest du eine Middleware wie Hibernate?
> 
> 2) Wie lautet die genaue Fehlermeldung (lieber zuviel als zuwenig)?



Direkt, keine middleware. 

2009-08-21 11:34:39,596 INFO  [STDOUT] org.postgresql.util.PSQLException: ERROR: character 0xc296 of encoding "UTF8" has no equivalent in "WIN1252"


----------



## sparrow (21. Aug 2009)

In der Regel reicht es dem Server mitzuteilen mit welcher Kodierung der Client arbeitet:



```
set client_encoding to xxxx
```
einfach als SQL-Kommando zum Beginn der Transaktion an den Server.

Also zum Beispiel _set client_encoding to latin1_ wenn der Client latin1 verwendet.

Um die Konvertierung zwischen den verschiedenen Kodierungen kümmert sich postgres.

Das falls das bei dir angegebene UTF-8 nicht deine Kodierung am Client ist.
Ansonsten müsstest du einschränken an welchem Zeichen es liegt, vielleicht gibt es das in diesem komischen WIN-Dingens wirklich nicht.


----------

