3

デフォルトとは異なるエンコーディングでjava.util.Propertiesを使用できますか?

4

3 に答える 3

5

はい。ただし、 /をとるメソッドload()とメソッドを慎重に使用し、正しいエンコーディングでを使用して明示的に構築する必要があります。store()ReaderWriterInputStreamReader/OutputStreamWriter

これは、プロパティファイルを暗黙的に使用するライブラリでは不可能な場合があります。

編集:上記のメソッドはJava 1.6でのみ導入されています。古いバージョンでは、dsadinoffが書いたように、運が悪いです。

于 2009-09-01T10:39:22.467 に答える
3

あなたがいない限りではありません

  1. java6以降を実行している
  2. プロパティファイルをロードするコードを制御し、リーダーを使用できます。javadocを参照してください。

これは仕様のかなり厄介な欠陥です。いくつかの回避策がありますが、おそらく最も簡単なのは、エンコードに適した(cp1250、utf-8など)ソースからユニコードエスケープされた準拠の.propertiesファイルを自動生成することです。

Javaには、これを行うためのnative2asciiというトランスコーダーが付属しています。

この主題に関するいくつかの古いRFEがあります:

于 2009-09-01T10:46:35.603 に答える
1

プロパティファイルがビルド時に利用できる場合は、native2asciiタスクを使用してAntスクリプトで変換することもできます。

<property name="javac.source.encoding" value="Cp1250"/>

<native2ascii src="${src.dir}" dest="${classes.dir}"
   encoding="${javac.source.encoding}"
   includes="**/*.properties"/>
于 2009-09-01T11:35:28.063 に答える