使用HIbernate和MySQL从varbinary列检索字符串时出现问题

时间:2010-03-28 00:24:28

标签: mysql hibernate encoding varbinary

这是我的情景。我使用Hibernate在MySQL中保存了一堆包含亚洲字符的字符串。这些字符串是用varbinary列编写的。保存操作期间一切正常。 DB包含正确的值(字节序列)。如果我查询(再次使用Hibernate)我保存的字符串,我得到正确的结果。但是当Hibernate用数据库中的值填充字符串所属的实体时,我得到的值与我在查询中使用的值不同。我没有收到正确的值,而是收到了一堆FFFD替换字符。

例如:如果我在数据库中存储“하늘”然后我查询它,结果字符串将是\ uFFFD \ uFFFD \ uFFFD \ uFFFD \ uFFFD \ uFFFD。

  • 数据库连接具有以下参数设置useUnicode = true& characterEncoding = UTF-8,
  • 我尝试过使用Hibernate的以下配置,但这并没有解决问题:
          - connection.useUnicode = true
          - connection.characterEncoding = UTF-8

    顺便说一句,如果MySQL列的类型是varchar,这一切都可以正常工作。 我错过了什么?有什么建议? 感谢

1 个答案:

答案 0 :(得分:0)

将连接字符集也设置为二进制:

SET NAMES 'binary';