Bashscript und PSQL

Guten Abend,
Ich benutze ein Bashscript um User Eingaben per Insert in eine Tabelle zu schreiben. Das geht dann schief, wenn im String ein ä, ö, ü drin ist da daraus Hyroglyphen werden Ich hab schon mit Reg. Exp. versucht die Umlaute raus zu filtern leider ohne Erfolg. Gibt es eine Möglichkeit das das Insert Statement vor dem Insert prüft ob dessen Ausführung einen Fehler zur Folge hat?

klingt nach nicht oder falsch gesetzten client_encoding.

vermutlich. Was sagt “psql -l” und was “echo $LANG” ?
Wenn schon Umlaute 1:1 durchgereicht werden, dann vermutlich auch ‘-Zeichen, oder ?
Sofern das Skript Daten von fremden (nicht vertrauenswuerdigen) Usern verarbeitet ist das natuerlich ein Sicherheitsproblem.
Eine richtig elegante Loesung kenne ich nicht fuer die Shell, eine Variante waere es die Variablen
base64 zu kodieren.
Mal angekommen in $1 steckt der Wert, dann laesst sich dieser wie folgt in base64 wandeln:
value=$(echo -n $1 | base64)
Und in der Postgres dann wieder zurueck:
psql -c "set bytea_output to ‘escape’; select (decode(’$value’, ‘base64’))"
Das geht auch mit insert/update statt select (eventuell mit ::text).

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Nachrichten mehr erlaubt.