我正在尝试执行存储在文件中的SQL查询。我正在使用以下命令执行:
psql -d DB_NAME -a -f QUERY_NAME.sql
我在SQL文件中有一些非英文文本,如 - સુરત
执行查询时,数据库中的文本看起来像 - ÃÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ
如何从命令行执行查询以使其正确运行?
答案 0 :(得分:5)
确保client_encoding
符合您文件的编码。检查您的系统区域设置。然后为psql使用匹配的命令行参数。 Quoting the manual here:
如果标准输入或标准输出中的至少一个是终端, 然后psql将客户端编码设置为“auto”,这将检测到 来自区域设置的适当客户端编码(LC_CTYPE Unix系统上的环境变量)。如果这不成功 预期,可以使用环境覆盖客户端编码 变量PGCLIENTENCODING。
Linux shell示例:
env PGCLIENTENCODING='WIN1258' psql DB_NAME -a -f QUERY_NAME.sql