2011-05-19 113 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頁面中添加了此項。