Shy*_*yam 11 character-encoding primefaces jsf-2
在其中一个项目中,我在表格数据上提供非英语内容(芬兰语).我们正在使用JSF 2.0和PrimeFaces.将数据提交到服务器时遇到问题.提交表单时数据已损坏.只有芬兰人在这方面变得腐败.
有没有人遇到过这个问题并找到了解决方案?
Bal*_*usC 20
这是自PrimeFaces 3.0以来的一个已知问题.这是由于它检查当前HTTP请求是否是ajax请求的方式的变化引起的.它由请求参数而不是请求标头标识.在恢复JSF视图之前第一次检索请求参数时,将使用服务器的默认字符编码来解析所有请求参数,该编码通常是ISO-8859-1,而不是JSF自己的默认字符编码UTF-8.有关深入解释,请参阅通过PrimeFaces输入组件检索的Unicode输入已损坏.
其中一个解决方案是创建一个过滤器request.setCharacterEncoding("UTF-8").
@WebFilter("*.xhtml")
public class CharacterEncodingFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
// ...
}
Run Code Online (Sandbox Code Playgroud)