如何在一个主要的webapp中设置charset?

Gui*_*rme 8 java character-encoding primefaces jsf-2

让我与primefaces 3.1分享我独特的失望,直到现在......我在RichFaces应用程序中使用phew组件,当我意识到问题时,一切都很好,我的母语中的一些字符显示错误,甚至是UTF-8在所有地方宣布的charset我知道它是必需的.

当输入一些特殊字符如"圣保罗"并在页面中提交时,会出现问题.提交后的数据重新显示为"S?£o Paulo"

我已经尝试了下面的解决方法:

1)Eclipse IDE:文本文件enconding选项

2)jsf文件:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
Run Code Online (Sandbox Code Playgroud)

3)JBOSS server.xml:

<Connector protocol="HTTP/1.1" URIEncoding="UTF-8" port="${jboss.web.http.port}" address="0.0.0.0" 
         redirectPort="${jboss.web.https.port}" />
Run Code Online (Sandbox Code Playgroud)

4)的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)

5)jsf文件:

<h:form acceptcharset="UTF-8" enctype="application/form-data">
Run Code Online (Sandbox Code Playgroud)

6)将primefaces版本升级到3.2

谢谢你的帮助!;-)

Gui*_*rme 9

我被迫创建一个过滤器,为每个请求设置字符集...

public class CharacterEncodingFilter implements Filter {

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
        response.setCharacterEncoding("UTF-8");
        request.setCharacterEncoding("UTF-8");
        chain.doFilter(request, response);
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub
    }

}
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题