使用PostgreSQL ODBC驱动程序进行编码(32位)

时间:2016-10-28 11:45:16

标签: windows postgresql encoding odbc excel-2013

我使用ODBC驱动程序遇到了字符编码问题。 我尝试使用Excel 2013从内部PostgreSQL服务器检索一些数据, 但是日文字符会出现乱码或用空字符串替换。

以下是我使用的内容:

  • [客户端] Windows 7 Enterprise 32位& Excel 2013 32位
  • [ODBC驱动程序] psqlodbc_09_05_0400-x86
  • [服务器] i6486-pc-linux-gnu上的PostgreSQL 8.2.3,由GCC gcc(GCC)3.4.6编译

服务器上的编码设置:

  • SERVER_ENCODING = SQL_ASCII
  • CLIENT_ENCODING = SJIS

注意:

  • 这两个驱动程序(" PostgreSQL Unicode"还没有" PostgreSQL ANSI")都没有工作。
  • 我已将以下字符串分别设置为" ConnSettings"选项(在连接字符串中)无效:
    •   
    • 将CLIENT_ENCODING设置为' SJIS'
    •   
    • 将CLIENT_ENCODING设置为' EUC_JP'
    •   
    • SET CLIENT_ENCODING =' SJIS'
    •   
    • SET CLIENT_ENCODING =' EUC_JP'

  • 我已尝试过" pgAdmin"应用程序,但无法摆脱乱码。

如何避免角色乱画?
任何评论将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的问题是SQL_ASCII的服务器编码。

使用此服务器编码,PostgreSQL无法识别编码,也不会执行字符转换,因此您的客户端会像在数据库中一样接收数据。如果这不正确,那你就不走运了。

正确的解决方案是使用其他服务器编码,例如EUC_JP或(更好)UTF8

客户端编码应该是SJIS