2

我正在尝试执行存储在文件中的 SQL 查询。我正在使用以下命令执行:

psql -d DB_NAME -a -f QUERY_NAME.sql

我在 SQL 文件中有一些非英文文本,例如 - સુરત

执行查询时,数据库中的文本看起来像 - à ª¸à «Âà ª°à ª¤

如何从命令行执行查询以使其正确运行?

4

1 回答 1

5

确保client_encoding匹配文件的编码。检查您的系统区域设置。然后为 psql 使用匹配的命令行参数。在这里引用手册:

如果标准输入或标准输出中至少有一个是终端,则 psql 将客户端编码设置为“自动”,这将检测区域设置中的适当客户端编码(Unix 系统上的 LC_CTYPE 环境变量)。如果这没有按预期工作,可以使用环境变量 PGCLIENTENCODING 覆盖客户端编码。

Linux shell 的示例:

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

手册中可用编码的列表。

于 2013-10-10T08:49:52.897 回答