デフォルトの読み込みメカニズムを使用するには、プロパティベースのリソースバンドルをISO-8859-1でエンコードする必要がありますが、このコードを使用して、プロパティファイルをUTF-8でエンコードできるようにしました。
private static class ResourceControl extends ResourceBundle.Control {
@Override
public ResourceBundle newBundle(String baseName, Locale locale,
String format, ClassLoader loader, boolean reload)
throws IllegalAccessException, InstantiationException,
IOException {
String bundlename = toBundleName(baseName, locale);
String resName = toResourceName(bundlename, "properties");
InputStream stream = loader.getResourceAsStream(resName);
return new PropertyResourceBundle(new InputStreamReader(stream,
"UTF-8"));
}
}
次に、もちろん、IDEでファイル自体のエンコーディングをUTF-8に変更する必要があり、次のように使用できます。
ResourceBundle bundle = ResourceBundle.getBundle(
"package.Bundle", new ResourceControl());