Umlaute in der SQL Shell

Hallo Leute,

ich habe Postgresql 8.4 installiert, bzw. und habe mit dem PGAdmin III (1.10.0) paar Tabellen angelegt, die u.a. Teilweise in den Spaltennamen Umlaute enthielten (z.B. Tabelle Zug mit Nummer,Typ und Länge). Nun gut, das ging und war kein Problem.

Ich konnte auch problemlos mit hilfe eines INSERT INTO tupel in diese Relation einfügen. Versuche ich aber ein Tupel einzupflegen, das selbst einen Umlaut enthält (zB “Würzburg”), dann spuckt er mir aus:

“FEHLER: ungültige Byte-Sequenz für Kodierung »UTF8«: 0x81
TIP: Dieser Fehler kann auch auftreten, wenn die Bytesequenz nicht mit der Kodi
erung übereinstimmt, die der Server erwartet, welche durch »client_encoding«
bestimmt wird.”

Wie man sieht ist hier a) die Codierung des Ausgabe falsch eingestellt, noch will er das Würzburg nciht.

Was kann ich dagegen machen???

habe schon versucht in google was dazu zu finden, aber leider ohne Erfolg!

ich danke Euch für die hilfe!!

vlg, mrbela

Nun, man könnte die Meldung mal lesen und beachten. Ein

show client_encoding;

jetzt wird bei Dir etwas anderes als ‘UTF8’ anzeigen, stimmts?

Und nach einem

set client_encoding='UTF8';

geht es vermutlich, stimmts?


Andreas

Hey Andreas,

danke erstmal für Deine Hilfe.

Ich hab mal “show client_encoding;” eingegeben und da stand UTF8. Habe es auch nochmal neu gesetzt, aber leider verändert sich immer noch nichts?!?

Danke für die hilfe!


P.S.:
Hier mal ein Screenshot des Ganzen:

Okay. Windoze. Das verwendet in der CMD irgend etwas, aber wohl nicht UTF8. Du wirst nun also client_encoding neu setzen müssen, mit dem irgendetwas, was Windoze da verwendet. Was das exakt ist, weiß ich nicht.

Andreas

Wie wäre es mit “win1250”?

PostgreSQL: Documentation: Manuals: PostgreSQL 8.4: Character Set Support

Danke für die Antwort, das wird die Lösung sein (hab mir die Page mal durchgelesen).

Nur, wie kann ich das einstellen?? Wenn ich auf meine db im pgAdmin gehe, und die Kodierung einstellen will, ist diese auf UTF8 eingestellt und das Feld nicht editierbar. Viell. ist es einstellbar, wenn ich ne neue 'DB anlege?!

Das Problem beschränkt sich ja aber eigtl. auf die Console (SQL Shell) die in einem Dos Fenster läuft.

Wie geht das da?!?

DANKE für die Hilfe!

Nun, pg_admin != Shell. Und die Einstellung heißt “client_encoding”.

Klar soweit?

Das ist kein “DOS” Fenster. Das ist eine Kommandozeile von Windows

Du musst mittels chcp die Codepage der Kommandozeile umstellen. Eigentlich dachte ich, dass psql ab 8.4 da eine Warnung ausgibt.

Lies’ Dir mal unter PostgreSQL: Documentation: Manuals: PostgreSQL 8.4: psql ganz unten den Abschnitt, “Notes for Windows users” durch.

Hallo

Ich habe ein ähnliches Problem. Die bisherigen Tipps haben leider aber nicht zur Lösung geführt…

Ich arbeite auf Windows und setzte über PostgreSQL Frontend 7.4.6 Scripte aus dem Windows Texteditor ab.

psql -f Script.txt mydb postgres

Dabei bekomme ich den Fehler: ungültige Byte-Sequenz für Kodierung “UTF8” (Wobei in der Fehlermeldung das ü und die “” nicht richtig angezeigt werden…)

client_encoding war anfangs auf UTF8. Ich habe jetzt auch WIN1252, latin1, und UNICODE probiert, jedoch ohne Erfolg.

chcp in PostgreSQL Frontend 7.4.6 gibt mir “Aktive Codepage: 1252.” aus. Was ja gemäss Dokumentaion auch so eingestellt sein soll.

In der SQL Shell (psql) kommt der gleiche Fehler, wenn ich Umlaute verwende.

Ich hoffe jemand kann weiterhelfen. Bin echt ratlos.

Vielen Dank im Voraus.

Gruss Martin