在我的earlier post中,JSF字符集处理存在问题,但问题的另一部分是用于将数据插入db的MySQL连接参数。问题解决了。
但是,我将相同的应用程序从JSP迁移到facelets,同样的问题再次发生。插入数据库时替换输入字段中的字符(č替换为Ä),但正确显示从具有正确字符集的sql脚本插入到数据库中的数据。我仍在使用注册过滤器,页面模板与头元标记一起使用如下:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
如果我在h:form标签中插入以下属性:
acceptcharset="iso-8859-2"
我在Firefox中获得了正确的字符,但在IE7中却没有。
我还有什么办法可以让它发挥作用吗?
提前致谢。
答案 0 :(得分:1)
将以下行添加到过滤器:
response.setContentType("text/html;charset=ISO-8859-2");
不要使用acceptcharset
属性。 IE有严重的错误。
此外,当您在Facelets XHTML页面顶部使用<?xml?>
声明时,请确保它使用所需的字符集或仅删除整个声明,这不是严格要求的。
<?xml version="1.0" encoding="ISO-8859-2"?>
答案 1 :(得分:0)
我认为你可以看到org.springframework.web.filter.CharacterEncodingFilter
的实施
你可以通过添加-Dfile.encoding = ISO-8859-2作为jvm参数来启动你的tomcat