Standard-Character-Set ändern

Hallo zusammen,
wir betrieben einen PostgreSQL-DB-Server 9.4.4 auf einem CentOS 7.
Eine Anwendung soll hier hinein exportieren. Das funktioniert schon sehr gut. Die Anwendung kann nur “WIN1252” liefern, das lässt sich leider nicht ändern.
Das Standard-Character-Set des PostgreSQL scheint aber UTF-8 zu sein, dadurch wir natürlich nicht alles richtig importiert, vor allem Text nicht.

Ich glaube, dass ich das Standard-Character-Set auf dem PostgreSQL in WIN1252 ändern muss. Wie genau mache ich das? Oder habe ich einen Denkfehler und ein anderer Fehler liegt vor?

Danke und beste Grüße

Pitfall

Ich denke, es sollte reichen, wenn der Client sein client_encoding korrekt setzt. Den Rest macht PG.

Danke für die Antwort!

Ich habe die Variable in der Datei

/var/lib/pgsql/9.4/data/postgresql.conf

folgendermaßen gesetzt:

client_encoding = 'WIN1252'

Wird aus der Anwendung (Buchhaltungs-System) ein Export gemacht, wird eine DB mit entsprechenden Tabellen angelegt. Kann es an den Anführungszeichen liegen?
Unter Collation und Character Type sehe ich, dass die DB mit de_DE.UTF-8 angelegt ist. Das entspricht der Ausgabe des Befehls ‘locale’ am Linux-Prompt.

Ich weiß, dass ich hier ein Verständnisproblem habe. Ich würde mich freuen, wenn mich jemand erhellen könnte…

Vielen Dank im Voraus!
Pitfall

Nochmal hallo,

wir haben in der Zwischenzeit eine weitere PostgreSQL-Installation aufgesetzt um damit weiter zu testen. Diesesmal unter Windows (XP). Windows soll hier keine Dauerlösung sein, sondern das eigentliche System CentOS 7.

Bei der Installation unter Windows sind mir im Assistenten folgende Einstellungen aufgefallen:
Locale: German, Germany
Encoding(Server): WIN1252
(Client): WIN1252

Mit diesen Einstellungen können wir arbeiten, so dass alles funktioniert!

Mir ist leider nicht klar, wo ich diese Einstellungen in der CentOS-Installation treffen kann, oder während der Installation festlegen kann. Wo kann ich diese Parameter festlegen?

Besten Dank und schöne Grüße!

Pitfall

Wie der Name schon sagt setzt das der Client bei seiner Verbindung. Demo:

test=# show client_encoding;
 client_encoding
-----------------
 UTF8
(1 row)

test=*# set client_encoding to 'WIN1252';
SET
test=*# show client_encoding;
 client_encoding
-----------------
 WIN1252
(1 row)

Entweder so oder im Connection String Deiner Applikation, guggst Du http://www.postgresql.org/docs/9.4/static/libpq-connect.html

Danke für die Infos!
Ich werde mich mal in mein Kämmerlein zurückziehen und mir das mal genauer ansehen…
Gruß

Pf