1

jsf ページで適切な文字セットを設定する際に問題があります。私は latin2 (ISO-8859-2 charset) と latin2_croatian_ci 照合で MySql db を使用しています。しかし、バッキング マネージド 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">

次の doFilter メソッドの実装を使用して、 web.xml に Filter を作成および登録しました。

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) 文字が「?」に置き換えられます。キャラクター。

ページに文字セットを設定してパフォーマンスを向上させる方法は他にありません。助言がありますか?

前もって感謝します。

4

1 に答える 1

0

私が行ったロギングは誤解を招くものでした。stdout が特殊文字を「?」に置き換えたことが判明しました。キャラクター。ただし、db に書き込まれた文字も「​​?」に置き換えられました。サイン。問題のもう 1 つの部分は、JConnector が正しいエンコーディング用に設定されていなかったため、db エントリがログに記録されたプロパティのように見えたことでした。2つの問題が組み合わさっているとは知りませんでした。

于 2010-04-23T07:11:52.457 に答える