2009-06-24 2 views
1

JSTLを使用してi18nを実装しており、.propertiesファイルで定義され、ISO 8859以外の文字(たとえばinidic言語)を持つリソーステキストをタグで表示できないという問題が発生しました。ISO 8859以外の言語のリソースファイル

タグのコードとBundleHelperクラスをダイビングした後、最終的にPropertyResourceBundleを使用してResourceBundle.getBundleメソッドを内部的に使用し、.propertiesファイルをリソースバンドルとしてロードすることがわかりました。

内部では、ISO 8859以外の文字の読み込みをサポートしていないjava.util.Properties#load(InputStream)メソッドが使用されていますが、そのような文字を/ u hex hex hex hex format .propertiesファイル全体がヒンディー語のためのものであるならば、非常に実用的ではありません!

これに関する回避策はありますか? .propertiesファイルでXMLフォーマットを使用しようとしましたが、PropertyResourceBundleで認識されませんでした!

環境の詳細は以下のとおりです。JDK 1.5は、WebLogic 9.2

+0

UTF-8を試しましたか? –

答えて

1

あなたは絶対には、JDK 1.5を使用するを持っていますか? 1.6まで移動できる場合は、load(Reader)オーバーロードを使用すると、ファイルを他のエンコード(たとえばUTF-8)に保存できます。私は確かにそれがどのようにPropertyResourceBundleに適合するのかは分かりません。

ISO-8859-1ファイルで作業する場合でも、そのフォーマットをに編集する必要はありません。 native2asciiを使用すると、別のエンコーディングのファイルを変換できます。 "ソース"プロパティファイルをUTF-8として保存し、native2asciiをビルドの一部として実行します。たとえば:

native2ascii -encoding UTF-8 Foo.properties.utf8 Foo.properties 
0

は、あなたが好きなエンコーディングでファイルを作成し、ビルドや展開プロセスの一部として、(まさにこの目的のためにJDKに付属している)native2asciiツールを介してそれらを実行します。

関連する問題