2

我正在使用spring 3JSF 2MYSQLHibernate和 Heidi SQL 是数据库的 GUI 工具,我遇到了阿拉伯字符的编码问题,即阿拉伯单词被插入到数据库中??????????并出现在视图中相同的形式。

所以这是我的编码配置:

1- 数据库:

  • 字符集:utf 8

  • 排序规则:utf8_general_ci

2- 弹簧:

我正在使用以下过滤器:

<filter>
    <filter-name>encoding-filter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encoding-filter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
  </filter-mapping>

3-JSF:

据我所知:FaceletsUTF-8默认使用。

4- 休眠:

这是数据库的连接网址:

jdbc:mysql://127.0.0.1:3306/mydb?zeroDateTimeBehavior=convertToNull&useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8

如果我在配置中遗漏了什么,请告知。

4

2 回答 2

2

您忘记了characterEncoding=UTF-8JDBC URL 中的参数。以下是修改后的 JDBC URL,其中包含使其正确处理 UTF-8 所需的最少参数:

jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF-8

也可以看看:

于 2012-04-03T13:24:24.050 回答
1

如果您使用 tomcat,则需要将以下参数添加到配置参数中:

-Dfile.encoding=UTF-8 

除了上面的hibernate配置。

于 2012-05-07T10:56:39.090 回答