Facelets charset问题

时间:2010-06-09 10:54:14

标签: unicode jsf facelets character-encoding

在我的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中却没有。

我还有什么办法可以让它发挥作用吗?

提前致谢。

2 个答案:

答案 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