我在jsf页面上设置适当的字符集时遇到了问题。我使用带有latin2 ( MySql -8859-2字符集)和latin2_croatian_ci排序规则的ISO。但是,我在设置支持托管bean属性的值时遇到了问题。
我的页面顶部的Page指令是:
<%@ page language="java" pageEncoding="ISO-8859-2" contentType="text/html; charset=ISO-8859-2" %>在head I中包括:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">我的表单标签是:
<h:form id="entityDetails" acceptcharset="ISO-8859-2">我已经使用以下doFilter方法实现在web.xml中创建并注册了过滤器:
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)字符都被替换为“?”性格。
我真的没有任何其他想法如何设置charset to pages才能很好地执行。有什么建议吗?
提前谢谢。
发布于 2010-04-23 15:11:52
我所做的日志记录具有误导性。结果是stdout用“?”替换了特殊字符。性格。但是,写入数据库的字符也被替换为'?‘签名。问题的另一部分是JConnector没有被设置为正确的编码,所以数据库条目看起来非常像记录的属性。我没有意识到这是两个问题的结合。
https://stackoverflow.com/questions/2661810
复制相似问题