Es scheint, dass die Codierung von Server zu Client unterschiedlich ist. Sie können dies mit diesen Befehlen überprüfen:
SHOW client_encoding; --Equivalent to: SELECT current_setting('client_encoding');
SHOW server_encoding; --Equivalent to: SELECT current_setting('server_encoding');
PostgreSQL konvertiert automatisch in Client-Codierung. Wahrscheinlich sind beide in Ihrer Umgebung unterschiedlich. Sie können client_encoding
konfigurieren in vielerlei Hinsicht:
- Mit
SET
Befehl beim Öffnen der Verbindung in Ihrer App:SET client_encoding = 'UTF-8';
- Mit
set_config
Funktion bei geöffneter Verbindung in Ihrer App:SELECT set_config('client_encoding', 'UTF-8', true);
- Konfigurieren Sie
PGCLIENTENCODING
Umgebungsvariable in Ihrem Betriebssystem:export PGCLIENTENCODING=UTF8
- Bearbeiten Sie
client_encoding
in der Postgres-Konfigurationsdatei - Verwenden Sie
ALTER SYSTEM
(Danach müssen Sie die Konfiguration mitSELECT pg_reload_conf();
aktualisieren ):ALTER SYSTEM SET client_encoding = 'UTF-8';
Aktualisierung: Leider ist es nicht möglich, die automatische Konvertierung von SQL_ASCII zu aktivieren.
Zitat aus Postgres-Dokumentation .