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
SET
commande lors de l'ouverture de la connexion dans votre application :SET client_encoding = 'UTF-8';
- Utiliser
set_config
fonction lorsqu'une connexion est ouverte dans votre application :SELECT set_config('client_encoding', 'UTF-8', true);
- Configurer
PGCLIENTENCODING
variable d'environnement dans votre système d'exploitation :export PGCLIENTENCODING=UTF8
- Modifier
client_encoding
dans 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 .