我正在使用第3版, JSF 2 , MYSQL , Hibernate ,而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:
据我所知:Facelets默认使用UTF-8
。
4-休眠:
这是数据库的连接URL:
jdbc:mysql://127.0.0.1:3306/mydb?zeroDateTimeBehavior=convertToNull&useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8
请告知我是否遗漏了配置中的内容。
答案 0 :(得分:2)
您忘记了JDBC URL中的characterEncoding=UTF-8
参数。这是修改后的JDBC URL,其中包含所需的最少参数,以便正确处理UTF-8:
jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF-8
答案 1 :(得分:1)
如果使用tomcat,则需要在配置参数中添加以下参数:
-Dfile.encoding=UTF-8
除了上面的hibernate配置。