如何在Spring JSF MySQL应用程序中正确显示阿拉伯语?

如何在Spring JSF MySQL应用程序中正确显示阿拉伯语?,mysql,spring,hibernate,jsf-2,heidisql,Mysql,Spring,Hibernate,Jsf 2,Heidisql,我使用的是Spring3、JSF2、MYSQL、Hibernate,HeidiSQL是数据库的GUI工具 我对阿拉伯字符的编码有一个问题,就是阿拉伯单词作为?????插入数据库,并以相同的形式出现在视图中 下面是我的编码配置: 1-数据库: 字符集:utf 8 排序规则:utf8\u常规\u ci 2-弹簧: 我正在使用以下过滤器: <filter> <filter-name>encoding-filter</filter-name> &l

我使用的是Spring3、JSF2、MYSQL、Hibernate,HeidiSQL是数据库的GUI工具 我对阿拉伯字符的编码有一个问题,就是阿拉伯单词作为
?????
插入数据库,并以相同的形式出现在视图中

下面是我的编码配置:

1-数据库:

  • 字符集:utf 8

  • 排序规则:utf8\u常规\u 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>

如果配置中缺少某些内容,请给出建议。

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

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

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

-Dfile.encoding=UTF-8 

除了上面的hibernate配置之外。

非常感谢,它工作得很好,您知道如何通过xml属性进行配置吗?我不知道您对xml属性的意思。我的意思是在单独的属性中添加编码配置,而不是在连接url中添加:
真正的UTF-8 UTF-8
我不知道。提出一个新的针对Hibernate的问题。
-Dfile.encoding=UTF-8