关于客户端和服务器端的乱码问题, POSTGRESQL字符集问题总结 总结的很详细, 特别棒.

这里让我头痛了很久的问题在于 终端 上字符编码的问题, 由于我的mbp上的 iterm2 的默认编码为 utf-8, 字符显示乱码实际上是由于 iterm2 不能好好显示 GBK 的编码导致的. 平时终端中可以显示中文, 不清楚为何 postgresql shell 中就不行了, 这导致一直没有想到是终端的问题.

关于中文可以正常显示, 我的配置如下

1. 安装 PostgreSQL 的 locale 选择的是 zh_CN.UTF-8
2. 客户端默认编码为 utf-8, 改为 gbk (\encoding 常看当前客户端编码字符集), 有两种方式可以选择: * set client_encoding to 'gbk'* \encoding 'gbk'3. 终端 iterm2 字符编码设置为 'gbk'

引用引文的一个例子

假设服务端编码为UTF-8,客户端工具psgl默认为GBK,

  1. 在此环境下插入“汉字”,一切正常。此时传到客户的“汉字”为GBK编码,自动转为UTF-8编码存到服务端;而查询时,又自动将服务端的UTF-8编码转为GBK来显示,所以没有出现乱码。

  2. 将客户端编码设置为UTF-8,则刚才插入的“汉字”不能正常显示。因为此时客户端和服务端的编码一样,在取数据时不进行任何转换,直接将存在服务端的UTF8编码的字节传到客户端,之后psgl直接显示,所以就乱码了。

  3. 此环境下插入“汉字”,则添加不成功,因为“汉字”直接以GBK的形式传到服务端,UTF8编码不认识,所以就报错。(现在客户端编码为UTF8,所以提示的中文信息也乱码了)。

总结:

1、在此示例中,应用程序psgl,对所输入和获取的字符没做任何处理,直接显示,其使用了pg客户端一样的编码方式(GBK)。
2、在使用时尽量保证客户端编码和操作系统环境一致,不然显示和添加就会出现乱码情况。

转载于:https://www.cnblogs.com/nowgood/p/PostgreSQLcharset.html

PostgreSQL 客户端乱码问题相关推荐

  1. Postico —— OS X 上的免费 PostgreSQL 客户端

    Postico 是 OS X 下的一个 PostgreSQL 客户端管理工具.要求 OS X 10.8 或者更新版本. 文章转载自 开源中国社区 [http://www.oschina.net]

  2. linux ssh客户端乱码,Win10专业版下Open ssh客户端乱码咋办?

    微软早在2015年就宣布 Windows将原生支持SSH.SSH是Linux上流行的远程访问和管理工具,Windows此前没有相比拟的类似简单工具.现在OpenSSH客户端终于引入到 Windows ...

  3. postgresql客户端命令之口令文件

    postgresql客户端命令之口令文件: 在给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件.之所以在这里提前说明该文件,是因为我们在后面的示例代码中会 ...

  4. Mac超好用的PostgreSQL客户端:Postico Mac下载

    Postico是一款Mac平台上的图形化PostgreSQL客户端工具,它提供了一个直观.简单易用的用户界面,方便开发人员与PostgreSQL数据库进行交互. 使用Postico,您可以轻松地连接到 ...

  5. PostgreSQL消息乱码的解决

    运行环境: 客户端服务器在同一台机器:Windows7 + Postgresql9.2.2 安装时区域之类都是默认安装,Npgsql查询出来表中数据是正常的,但出错时消息是乱码. 解决方案: 修改po ...

  6. postgresql 客户端_一款功能强大的数据库客户端:DataGrip

    前言 在我们日常的程序开发中,很大一部分时间是在与数据库打交道. 查数据,导数据,检查SQL执行计划,优化SQL等,是我们数据库开发工作的重要组成部分,而且很多时候我们会使用到多款数据库,如Oracl ...

  7. PostgreSQL客户端psql常用命令

    使用psql客户端访问数据库, 列出了psql常用命令和参数. 常用命令 -- 使用指定用户和IP端口登陆 psql -h 10.43.159.11 -p 5432 -U postgres -W -- ...

  8. oracle客户端改字符集没有用,ORACLE客户端乱码 修改Oracle客户端字符集

    修改Oracle客户端字符集方法: 1:可以通过修改注册表键值永久设置,类似于这样的键值: HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOME0下, 如一般的简体中文 nl ...

  9. mysql 客户端乱码_Mysql客户端中文乱码问题解决

    用Mysql客户端查询发现乱码: mysql> select *from user;+----+------------+----------+------------+-----------+ ...

最新文章

  1. Java8 详解Lambda表达式
  2. 对用批处理写的chm反编译工具小析
  3. 借助网盘搭建SVN服务器
  4. 赠书:聊聊「分布式架构」那些事儿
  5. 轻松一下——高考笑句
  6. 分布式资源调度—YARN框架
  7. st-link v2怎么连接_三相交流电源的三角形和星形连接
  8. monkey 环境搭建
  9. sql profiler_这是SQL Profiler的结尾吗?
  10. 生成动态代理并加入系统功能的设计模板
  11. MFC多文档开发记录
  12. s400x ugee 驱动_联想_ThinkPad|ThinkCentre|ThinkStation服务与驱动下载_常见问题
  13. 射频能量用于治疗和美容
  14. nodejs返回带图片的HTML页面,Nodejs实现简单的网页图片获取
  15. linux下企业邮件服务器的搭建
  16. 计算机科学和热力学,相图热力学数据库及其计算软件: 过去、现在和将来
  17. 利用代码自动逛店铺拿喵币
  18. 启舰:不懂花钱的人,大概率成为Loser!
  19. MT6737/MT6737T/MT6737M处理器功能介绍,MT6737芯片资料下载
  20. Mac如何给压缩文件加密

热门文章

  1. CSS3 transform
  2. 两个onCreate方法?你真的了解onCreate()么?
  3. 读取mysql数据库的数据,转为json格式
  4. BZOJ 1047 理想的正方形(单调队列)
  5. 阿里巴巴Java开发手册———个人追加的见解和补充(一)
  6. Java--缓存热点数据,最近最少使用算法
  7. 9.Methods(二)
  8. SQL Server几个常用Date函数(二)
  9. 你需要掌握的三种编程语言
  10. 灰度图像归一化到0~255(对比度拉伸)的OpenCV代码实现