我要从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查询时,它就像垃圾一样。我没有正确回复。你能帮我解决我在这里做错的事吗?
答案 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>