我通常可以将捷克语字符串写入表单:
但是在验证后(以及当我将收集到的字符串发送到数据库时),该字符串使用了其他字符集:
h:outputTexts
(名称,姓氏)仍然正常显示,而h:inputTexts
则不是。
我应该在哪里寻找问题?
更新: HTTP响应头:
解决方案:
- 创建带有
request.setCharacterEncoding("UTF-8")
的过滤器,在Filter#doFilter()
中使用 - 检查所有xml是否已配置为UTF-8
- 在主xhtml中添加
<f:view contentType="text/html" encoding="UTF-8"/>
在hibernate.cfg.xml中添加以下行:
<property name="hibernate.connection.characterEncoding">utf8</property>
<property name="hibernate.connection.useUnicode">true</property>
Filter#doFilter()
中使用request.setCharacterEncoding("UTF-8")
应该可以解决问题,但对于Facelets上的JSF 2.0来说,这不是必需的。首先,您使用的JSF实现/版本是什么,您在web.xml
中有哪些与JSF相关的上下文参数? - BalusC