web-dev-qa-db-fra.com

PostgreSQL: problèmes de codage sous Windows lors de l'utilisation de l'utilitaire de ligne de commande psql

Je travaille dans un système de surveillance centralisé sur Windows 2008 R2, j'ai installé un PostgreSQL 9.3 pour utiliser psql à partir de la ligne de commande.

Lorsque j'essaie d'accéder à certains Postgres distants (un 8.4 dans mon cas principal), j'ai une erreur avec l'encodage:

commander:

psql.exe -h 192.168.114.12 -p 5432 -d db_seros_transaccion -U postgres -f script.sql

erreur:

psql: FATAL:  la conversión entre WIN1252 y LATIN1 no está soportada

J'essaye d'ajouter la phrase

SET client_encoding = 'UTF8';

dans mon script mais le problème persiste (et avec d'autres encodages aussi, comme LATIN1 & WIN1252).

Après l'avoir recherchée sur Google, j'ai trouvé des personnes qui mettent à jour certaines lignes du serveur pour établir la connexion, et cela me pose problème.

Quelqu'un peut-il m'aider à établir une connexion en utilisant psql sans mise à jour? C'est possible?

17
Frank N Stein

Merci beaucoup Craig Ringer, ça marche, ça marche enfin! Tu es mon nouvel idole maintenant!

Les étapes sont les suivantes:

  1. ouvrir le cmd
  2. SET PGCLIENTENCODING = utf-8
  3. chcp 65001
  4. psql -h your.ip.addr.ess -U postgres
60
Frank N Stein