【问题标题】:PostgreSQL encoding issue while executing query from command line从命令行执行查询时出现 PostgreSQL 编码问题
【发布时间】:2014-02-05 22:39:43
【问题描述】:

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

psql -d DB_NAME -a -f QUERY_NAME.sql

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

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

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

【问题讨论】:

标签: postgresql utf-8 character-encoding special-characters psql


【解决方案1】:

确保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

List of available encodings in the manual.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-19
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    相关资源
    最近更新 更多