3

私はJSF 2.0を使用しており、テキストフィールドを

<h:form>
    <h:inputText value="#{myBean.myValue}" />
    <h:commandButton value="Submit" action="#{myBean.printMe()}" />
</h:form>

public void printMe() {
    System.out.println("first line==" + myValue + "==");
    System.out.println("second line==يشسيبشسيبشسيبشيس==");
}

このプロジェクトを実行يشسيبشسيبشسيبشيسしてテキスト ボックスに入力すると、IDE コンソールに次のように表示されます。

INFO: first line==????????????????==
INFO: second line==????????????????==

なぜこれが起こっているのですか?

4

2 に答える 2

7

これは、間違ったコンソール エンコーディングを使用したことが原因です。

この線

System.out.println("My Data is " + fullName);

標準出力 (stdout) に出力します。UTF-8も使用するように構成する必要があります。Eclipse を使用していると仮定すると、Window > Preferences > General > Workspace > Text File Encodingで stdout エンコーディングを UTF-8 に変更する必要があります。

ここに画像の説明を入力

私が頭から答えることができないNetbeansを使用している場合は、この回答に進んでください。ヘブライ語は、次のことを言及しているこのNetbeans Wikiへのリンクを含むnetbeansに疑問符として表示されます。

プロジェクトの言語エンコードを変更するには:

  1. 「プロジェクト」ウィンドウでプロジェクトノードを右クリックし、「プロパティ」を選択します。
  2. [ソース] で、[エンコード] ドロップダウン フィールドからエンコード値を選択します。

以下も参照してください。


具体的な問題とは関係ありませんが、フィルター内のこれらの行は不要です

    res.setCharacterEncoding("UTF-8");
    res.setContentType("text/html;charset=utf-8");

JSF2/Facelets の場合、デフォルトですでに適切な値になっています。それらの行を削除します。

于 2012-11-19T11:20:17.710 に答える
-2

データが DB からのものである場合は、フィールドのデータ型が nvarchar であることを確認してください。

于 2012-11-19T10:59:16.483 に答える