PostgreSQL编码问题

前端之家收集整理的这篇文章主要介绍了PostgreSQL编码问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

PG jdbc报错消息乱码问题

jdbc报错消息乱码:

org.postgresql.util.PsqlException:��������:����"postgres"Password��������

正确的应该是显示

org.postgresql.util.PsqlException:ErrorFATAL:passwordauthenticationFailedforuser"postgres"


解决方式是:

将PG数据库data目录下的postgresql.conf配置文件中的lc_messages 设置为lc_messages = 'C'或者lc_messages = 'UTF8',重启数据库后即可。

注意:如果想要PG数据库系统表现得像没有区域支持一样,那么使用特殊的区域 C 或 POSIX
在PG中,一些区域性质的值一旦运行了 initdb 之后,你就再也不能更改它们了。LC_COLLATE 和 LC_CTYPE 就是这样的。它们影响索引的排序顺序,因此它们必需保持固定,其它区域性质可以在服务器启动的时候根据需要通过配置postgresql.conf变量来改变,如果你在 postgresql.conf 里面删除了这些缺省值,那么服务器将会继承来自运行环境的设置。

参考资料:

  1. 消息乱码的解决方法http://www.xuebuyuan.com/65748.html

  2. PG与操作系统的区域和字符集:http://blog.chinaunix.net/uid-354915-id-3502551.html

  3. jdbc对pg7.3前后的字符集支持http://acogitosis.krop.pl/2011-11-18-solution-to-postgres-jdbc-driver-ignoring-charset-directive-with-sql_ascii-database


该类问题主要出现在操作系统是中文的情况,英文的操作系统一般没问题。

相关问题:

安装PG的时候没有使用英语,但怎么所有的消息都是英文?!

安装过程中的语言选择仅是选择安装程序所使用的语言。要更改安装产品中消息的语言,请确保您安装了区域语言支持(Natural language support)功能组件。然后编辑安装的 postgresql.conf 配置文件修改其中的lc_messages参数值为您需要的语言。

参考资料:

https://wiki.postgresql.org/wiki/%E5%9C%A8Windows%E5%B9%B3%E5%8F%B0%E4%B8%8A%E5%AE%89%E8%A3%85%E4%B8%8E%E8%BF%90%E8%A1%8CPostgreSQL%E7%9A%84%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E4%B8%8E%E8%A7%A3%E7%AD%94


官方文档相关:

9.2英文:http://www.postgresql.org/docs/9.2/static/charset.html

9.3中文http://58.58.27.50:8079/doc/html/9.3.1_zh/charset.html

原文链接:https://www.f2er.com/postgresql/195364.html

猜你在找的Postgre SQL相关文章