Ankit
Ankit

Reputation: 3183

PostgreSQL encoding issue while executing query from command line

I am trying to execute an SQL query which is stored in the file. I am using following command to execute:

psql -d DB_NAME -a -f QUERY_NAME.sql

I have some non English text in the SQL file like - સુરત

When the query is executed the text in the database looks like - à ª¸à «Âà ª°à ª¤

How do I execute the query from command line so that it runs correctly?

Upvotes: 2

Views: 3885

Answers (1)

Erwin Brandstetter
Erwin Brandstetter

Reputation: 656321

Make sure the client_encoding matches the encoding of your file. Check your system locale. Then use a matching command line argument for psql. Quoting the manual here:

If at least one of standard input or standard output are a terminal, then psql sets the client encoding to "auto", which will detect the appropriate client encoding from the locale settings (LC_CTYPE environment variable on Unix systems). If this doesn't work out as expected, the client encoding can be overridden using the environment variable PGCLIENTENCODING.

Example for a Linux shell:

env PGCLIENTENCODING='WIN1258' psql DB_NAME -a -f QUERY_NAME.sql

List of available encodings in the manual.

Upvotes: 5

Related Questions