Server-/Clientencoding

Moin allerseits,
ich habe das Problem, daß ich über PHP keine deutschen Umlaute in meine PG-DB auf’m Linux-Server einfügen kann. Es erscheint folgende Fehlermeldung (in diesem Fall war’ ein ‘ö’):

SQLSTATE[22021]: Character not in repertoire: 7 ERROR: invalid byte sequence for encoding “UTF8”: 0xf6272c0a HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by “client_encoding”.

Über die Konsole ist das Einfügen kein Problem.
Also habe ich die Encodings gecheckt:

mydb=> show LC_CTYPE;
lc_ctype

en_GB.UTF-8
(1 row)

mydb=> show client_encoding;
client_encoding

UTF8
(1 row)

Sieht für mich alles nach UTF8 aus!
Danke im Voraus!

Du bist nah dran. Client_encoding macht das, was der Name verspricht: es definiert das Encoding des Clients. Dein Denkfehler ist: das ist nicht fix und gleich für alle Clients, sondern per Client. Dein psql-Client läuft mit UTF8,
Dein PHP mit was anderem.

Andreas

Ok,

<?php ... print pg_client_encoding($conn); ?>

ergibt erwartungsgemäßt UTF8.
Ich muss weiterfragen, wie lässt sich das “Encoding meines PHP” auslesen und setzen?
Nochmals thx!

Hat sich erledigt.
Setzen von:

im Head noch vor dem Title hat das Problem gelöst.