我正在尝试执行存储在文件中的 SQL 查询。我正在使用以下命令执行:
psql -d DB_NAME -a -f QUERY_NAME.sql
我在 SQL 文件中有一些非英文文本,例如 - સુરત
执行查询时,数据库中的文本看起来像 - à ª¸à «Âà ª°à ª¤
如何从命令行执行查询以使其正确运行?
我正在尝试执行存储在文件中的 SQL 查询。我正在使用以下命令执行:
psql -d DB_NAME -a -f QUERY_NAME.sql
我在 SQL 文件中有一些非英文文本,例如 - સુરત
执行查询时,数据库中的文本看起来像 - à ª¸à «Âà ª°à ª¤
如何从命令行执行查询以使其正确运行?
确保client_encoding
匹配文件的编码。检查您的系统区域设置。然后为 psql 使用匹配的命令行参数。在这里引用手册:
如果标准输入或标准输出中至少有一个是终端,则 psql 将客户端编码设置为“自动”,这将检测区域设置中的适当客户端编码(Unix 系统上的 LC_CTYPE 环境变量)。如果这没有按预期工作,可以使用环境变量 PGCLIENTENCODING 覆盖客户端编码。
Linux shell 的示例:
env PGCLIENTENCODING='WIN1258' psql DB_NAME -a -f QUERY_NAME.sql