Il semble que l'encodage soit différent d'un serveur à l'autre. Vous pouvez le vérifier en émettant ces commandes :
SHOW client_encoding; --Equivalent to: SELECT current_setting('client_encoding');
SHOW server_encoding; --Equivalent to: SELECT current_setting('server_encoding');
PostgreSQL se convertit automatiquement en codage client. Les deux sont probablement différents dans votre environnement. Vous pouvez configurer client_encoding de plusieurs manières :
- Utiliser
SETcommande lors de l'ouverture de la connexion dans votre application :SET client_encoding = 'UTF-8'; - Utiliser
set_configfonction lorsqu'une connexion est ouverte dans votre application :SELECT set_config('client_encoding', 'UTF-8', true); - Configurer
PGCLIENTENCODINGvariable d'environnement dans votre système d'exploitation :export PGCLIENTENCODING=UTF8 - Modifier
client_encodingdans le fichier de configuration postgres - Utilisez
ALTER SYSTEM(vous devez ensuite actualiser la configuration avecSELECT pg_reload_conf();):ALTER SYSTEM SET client_encoding = 'UTF-8';
Mise à jour : Malheureusement, il n'est pas possible d'activer la conversion automatique à partir de SQL_ASCII.
Citation de documentation Postgres .