postgres linux 环境psql 中文乱码处理

PostgreSQL 中文乱码问题解决方案

PostgreSQL 在 psql 命令行中出现中文乱码通常是由于字符编码设置不正确导致的。以下是几种解决方法:

1. 检查当前数据库编码

复制代码

sqlCopy Code

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = current_database();

2. 设置客户端编码

在 psql 中执行:

复制代码

sqlCopy Code

\encoding UTF8

3. 永久解决方案

方法一:修改环境变量

在用户配置文件(~/.bashrc 或 ~/.bash_profile)中添加:

复制代码
export PGCLIENTENCODING=UTF8 export LANG=zh_CN.UTF-8 xport LC_ALL=zh_CN.UTF-8 

方法二:修改 PostgreSQL 配置

  1. 编辑 postgresql.conf 文件(通常位于 /etc/postgresql/版本/main/)
  2. 确保以下设置:
复制代码

client_encoding = utf8

lc_messages = 'zh_CN.UTF-8'

lc_monetary = 'zh_CN.UTF-8'

lc_numeric = 'zh_CN.UTF-8'

lc_time = 'zh_CN.UTF-8'

方法三:创建数据库时指定编码

复制代码

sqlCopy Code

CREATE DATABASE dbname WITH ENCODING 'UTF8' LC_COLLATE 'zh_CN.UTF-8' LC_CTYPE 'zh_CN.UTF-8';

4. 检查终端编码

确保终端本身支持 UTF-8 编码,可以通过以下命令检查:

复制代码

bashCopy Code

echo $LANG

如果显示不是 UTF-8 相关编码,需要修改终端设置。

5. 连接时指定编码

连接数据库时使用:

复制代码

bashCopy Code

psql -U username -d dbname --set=client_encoding=UTF8

相关推荐
2401_8735449243 分钟前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
虾..1 小时前
多路复用 --- select系统调用
服务器·数据库·sql
杨云龙UP1 小时前
mysqldump逻辑备份文件恢复总结:全库恢复、单库恢复,一篇讲明白
linux·运维·服务器·数据库·mysql·adb
ybwycx1 小时前
mysql重置root密码(适用于5.7和8.0)
数据库·mysql·adb
色空大师2 小时前
【网站搭建实操(一)环境部署】
java·linux·数据库·mysql·网站搭建
亚历克斯神3 小时前
Flutter for OpenHarmony: Flutter 三方库 mutex 为鸿蒙异步任务提供可靠的临界资源互斥锁(并发安全基石)
android·数据库·安全·flutter·华为·harmonyos
IAUTOMOBILE3 小时前
用Python批量处理Excel和CSV文件
jvm·数据库·python
常利兵3 小时前
Spring项目新姿势:Lambda封装Service调用,告别繁琐注入!
java·数据库·spring
liqianpin14 小时前
MySQL官网驱动下载(jar包驱动和ODBC驱动)【详细教程】
数据库·mysql
kgduu4 小时前
js之客户端存储
javascript·数据库·oracle