【问题标题】:MySQL UTF8 with Hibernate 3 and Spring带有 Hibernate 3 和 Spring 的 MySQL UTF8
【发布时间】:2011-08-28 23:36:20
【问题描述】:

架构中的所有表都设置为 UTF-8 作为默认字符集,但我无法让 Hibernate 正确插入“é”或“ñ”等符号(它们被插入为“é”或"ñ").

我的配置如下:

<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=true&characterEncoding=UTF-8 添加到连接 URL,但没有结果...有什么想法吗?

【问题讨论】:

标签: mysql hibernate spring utf-8 collation


【解决方案1】:

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

【讨论】:

  • 关于你提到的Tomcat配置,你到底做了什么? server.xml 中的 URIEncoding="UTF-8"?
  • 我做到了,我还添加了一个 org.springframework.web.filter.CharacterEncodingFilter 到 web.xml..
  • 这个问题中的答案 4 解释了如何做到这一点:stackoverflow.com/questions/5928046/spring-mvc-utf-8-encoding
【解决方案2】:

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

在 jsp 页面中添加编码后 IT 工作正常 我在jsp页面中添加了这个。

【讨论】:

    猜你喜欢
    • 2013-11-13
    • 1970-01-01
    • 2020-02-02
    • 2013-06-07
    • 2013-01-13
    • 2013-03-06
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多