在hibernate中支持utf8数据

时间:2017-07-25 13:50:54

标签: java mysql hibernate utf-8

我要从hibenate中获取utf8数据时遇到一些麻烦。我正在使用RDS数据库。我创建了一个包含以下语法的表:

CREATE TABLE `Test' (
`id` char(36) NOT NULL
)DEFAULT CHARSET=utf8;

这是我对hibernate的以下配置:

<prop key="hibernate.connection.url">${JDBC.databaseURL}</prop>
<prop key="hibernate.connection.username">${Username} </prop>
<prop key="hibernate.connection.useUnicode">true</prop>
<prop key="hibernate.connection.characterEncoding">utf8</prop>
<prop key="hibernate.connection.CharSet">utf8</prop>

我在日语中手动在db表中插入了一行,当我从Test中选择*时,我可以看到日语中存在数据;

但是当我从hibernate查询时,它就像垃圾一样。我没有正确回复。你能帮我解决我在这里做错的事吗?

1 个答案:

答案 0 :(得分:0)

除了hibernate配置外,您还需要设置过滤器。

<filter>
    <filter-name>SetCharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>SetCharacterEncodingFilter</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>

hibernate配置。

<property name="hibernate.connection.CharSet">utf8</property>
<property name="hibernate.connection.characterEncoding">utf8</property>
<property name="hibernate.connection.useUnicode">true</property>