2011-05-19 108 views
10

模式中的所有表都设置为默认字符集UTF-8,但我无法设法让Hibernate正确插入符号“é”或“ñ”(它们是插入为“Ô或“Ô)。MySQL UTF8与Hibernate 3和Spring

我的配置如下:

<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="url" value="${db.url}"></property> 
    <property name="username" value="${db.user}"></property> 
    <property name="password" value="${db.password}"></property> 
    <property name="driverClassName" value="${db.driver}"></property> 
</bean> 
<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"></property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.connection.useUnicode">true</prop> 
      <prop key="hibernate.connection.characterEncoding">UTF-8</prop> 
      <prop key="hibernate.connection.charSet">UTF-8</prop> 
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 
     </props> 
    </property> 

我已经尝试添加了useUnicode =真&的characterEncoding = UTF-8到连接URL,但没有结果...任何想法?

+0

我写了一篇关于这个配置的文章:http://www.reweb.com.ar/novedades/notas/utf-8-en-tomcat-6-0-spring-3-hibernate3-y- mysql – 2012-03-07 16:36:27

回答

7

解决了,这不是Hibernate问题,Tomcat没有配置为将传入请求编码为UTF-8。

+0

关于你提到的Tomcat配置,你真的做了什么? server.xml中的URIEncoding =“UTF-8”? – Ricardo 2011-11-17 13:23:50

+0

我这样做了,我还添加了一个org.springframework.web.filter.CharacterEncodingFilter到web.xml .. – 2011-11-30 00:41:21

+0

你究竟是如何解决这个问题的。谢谢? – TheOnlyIdiot 2012-11-13 06:46:05

0

添加休眠编码后,它不起作用,但它在页面级别添加编码后工作。

在jsp页面中添加编码后,IT工作了 我在jsp页面中添加了此项。