3

リソースバンドルを使用して、ロケールに基づいてプロパティ ファイルを読み取ります。(Lang_en_US.properties, ..)

リソースバンドルは iso-8859-1 (標準?) として読み取られます。

ResourceBundle rb= ResourceBundle.getBundle("Lang", locale);

リソースバンドルは、Spring/JSF Web アプリケーション全体で使用され、フロントエンド テキストを生成します。

<h:outputText value="#{msg['message.example']}" />

しかし、rb getMessage が呼び出された直後にテキストが既に意味不明であることがデバッグによって示されるため、これは無関係だと思います。

// returns gibberish:
log.trace(rb.getMessage("l_SampleText"));
4

2 に答える 2

1

リソースバンドルが iso-8859-1 として読み込まれると仮定するのは正しいと思います。 Properties クラスの Javadoc ( source )

プロパティ ファイルが iso-8859-1 形式で保存されていますか? Notepad ++は、変換しない場合でも、少なくともエンコーディングをチェックする機能を提供すると思います。

于 2012-11-07T16:11:57.443 に答える
0

ISO-8859-1で正しくエンコードされていない可能性のあるUTF-8文字を使用しているため、2つのオプションがあります

  1. nativetoasciiツールを使用してバンドル内の文字をエスケープし、すべての文字が正しく読み取られるようにします

  2. UTF-8エンコーディングのファイルをサポートするSpringのMessageSourcesのバンドルサポートを使用する

于 2012-11-07T16:47:24.013 に答える