1
我在我的jsf頁面上設置正確的字符集有問題。我使用帶有latin2(ISO-8859-2字符集)和latin2_croatian_ci排序規則的MySql db。但是,在支持託管bean屬性上設置值時遇到問題。在我的頁面頂部JSF ISO-8859-2字符集
Page指令是:
<%@ 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">
我創建和使用以下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)字符都將替換爲'?'字符。
我真的沒有任何其他想法如何設置字符集,以頁面執行良好。有什麼建議麼?
在此先感謝。
*你是如何認定它們已被損壞的?你有沒有在視圖中查看它們?或者在標準輸出中? (你在'System.out.print'這些字符的地方)。 – BalusC 2010-04-18 14:38:43
對不起,我的延遲迴復。 我通過SQL腳本插入一些數據到數據庫中,並且他們顯示正確,所以我得出結論,顯示正確的字符集沒有問題。我在從JSF發送的支持bean集合方法數據中記錄了(通過slf4j的stdout和文件),並且數據已損壞。另外,插入數據庫的數據已損壞。 – Vladimir 2010-04-20 15:36:44