从命令行执行查询时,PostgreSQL编码问题[英] PostgreSQL encoding issue while executing query from command line

本文是小编为大家收集整理的关于从命令行执行查询时,PostgreSQL编码问题的处理方法,想解了从命令行执行查询时,PostgreSQL编码问题的问题怎么解决?从命令行执行查询时,PostgreSQL编码问题问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

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

psql -d DB_NAME -a -f QUERY_NAME.sql

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

当查询执行时,数据库中的文本看起来像-——â€â«ââââââ€

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

推荐答案

确保 > 匹配文件的编码.检查您的系统语言环境.然后使用PSQL的匹配命令行参数. 在这里引用手册

如果至少一个标准输入或标准输出是终端,则 然后PSQL将客户端编码设置为"自动",该客户将检测到 适当的客户端从语言环境设置(LC_CTYPE)编码 UNIX系统上的环境变量).如果这不起作用 预期,可以使用环境覆盖客户编码 可变pgclientencoding.

linux壳的示例:

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

手册中可用编码的列表.

本文地址:https://www.itbaoku.cn/post/1764085.html