【问题标题】:PostgreSQL encoding issuePostgreSQL 编码问题
【发布时间】:2012-01-19 14:54:18
【问题描述】:

我正在运行 9.1 版的本地 postgresql 服务器,并使用 postgresql-9.1-901.jdbc4.jar 让我的 java 应用程序访问数据库。

虽然我将编码设置为 UTF8 并重新启动服务器,但无法插入(使用应用程序)带有德国元音变音符号的值,例如 äöü。结果如下所示:√§√∂√º√ü

我已经检查了所有地方的编码,甚至将服务器降级到版本 9.0 与相应的驱动程序,但没有任何帮助。

感谢您的帮助! 嗯……

【问题讨论】:

  • 如何插入这些值并检查结果?
  • 请提供一些插入代码和读取值的代码示例。

标签: java postgresql jdbc pgadmin


【解决方案1】:

确保您发送到 db 的文本也是 UTF-8 编码的。这意味着:

  • 如果您将它保存在 .properties 文件或类似文件中,请确保该文件是 UTF-8 编码的(只需在 notepad++ 中打开它并查看它报告的编码)

  • 确保您使用 UTF-8 编译 Java 代码:

    • 在Eclipse中,右键项目->属性->资源->文本文件编码应该是UTF-8

    • 如果使用 Maven 构建,请确保您的 pom.xml 包含:

      <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      
    • 如果是plain-ole命令行编译,做一个:

      javac -encoding UTF-8 *.java
      

【讨论】:

  • Ant 编码设置为 ="UTF-8" ,eclipse 资源属性设置为 utf-8,测试值来自同样设置为 utf-8 的 java 类。没有帮助。
【解决方案2】:

我找到了解决这个问题的方法。我正在使用 Mac OSX Lion,更新后默认系统编码更改为 MacRoman。但是,更改编码解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 2011-04-13
    • 2017-11-10
    • 1970-01-01
    相关资源
    最近更新 更多