MySQL UTF8 с Hibernate 3 и Spring - PullRequest
10 голосов
/ 19 мая 2011

Все мои таблицы в схеме установлены в 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-адресу соединения, но безрезультатно ... Есть идеи?

Ответы [ 2 ]

7 голосов
/ 19 мая 2011

Решено, это не было проблемой Hibernate, Tomcat не был настроен для кодирования входящих запросов как UTF-8.

0 голосов
/ 05 сентября 2012

После добавления кодировки hibernate это не сработало, но сработало после добавления кодировки на уровне страницы.

Это работало после добавления кодировки на странице JSP Я добавил это на странице JSP.

...