プロパティオブジェクトにロードする必要があるキーと値のペアのチェーンである単一のUTF-8エンコードされたStringがあります。私は最初のインプリメンテーションで文字化けしていることに気付きました。ちょっとしたグーグルで私はこの問題が何であるかを示すQuestionを見つけました - 基本的にプロパティはISO-8859-1を使っています。この実装は次のように見えますプロパティにUTF-8エンコードされたJava String
public Properties load(String propertiesString) {
Properties properties = new Properties();
try {
properties.load(new ByteArrayInputStream(propertiesString.getBytes()));
} catch (IOException e) {
logger.error(ExceptionUtils.getFullStackTrace(e));
}
return properties;
}
エンコーディングが指定されていないため、私の問題です。私の質問には、/InputStream
の組み合わせをProperties.load()
に渡し、提供されたpropertiesString
を使用してエンコーディングを指定する方法を見つけることができません。これは主にI/Oストリームの不慣れさと、java.ioパッケージのIOユーティリティの膨大なライブラリによるものだと思います。
アドバイスありがとうございます。
それコンストラクタが存在しません。 – BalusC
ありがとう、私はcheckout [StringReader](http://docs.oracle.com/javase/6/docs/api/java/io/StringReader.html)でしたが、そのようなコンストラクタは見当たりませんでした。 – markdsievers
乾杯Mattは、このソリューションをうまく試しました。最初にStringReaderを使用しなかったのは、私の目隠しがエンコーディングのコントロールを探していたからです。ご協力いただきありがとうございます。アップフォート+あなたのために私の友人を受け入れる。 – markdsievers