我在我的 jsf 页面上设置正确的字符集时遇到问题。我将 MySql db 与 latin2(ISO-8859-2 字符集)和 latin2_croatian_ci 排序规则一起使用。但是,我在设置支持托管 bean 属性的值时遇到了问题。
我页面顶部的页面指令是:
<%@ page language="java" pageEncoding="ISO-8859-2" contentType="text/html; charset=ISO-8859-2" %>
在头部我包括:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
我的表单标签是:
<h:form id="entityDetails" acceptcharset="ISO-8859-2">
我在 web.xml 中使用以下 doFilter 方法实现创建并注册了过滤器:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("ISO-8859-2");
response.setCharacterEncoding("ISO-8859-2");
chain.doFilter(request, response);
}
但是,即当我通过 inputText 设置托管 bean 属性时,所有特殊(unicode)字符都替换为“?” 特点。
我真的没有任何其他想法如何将字符集设置为页面以使其表现良好。有什么建议么?
提前致谢。