Пакеты ресурсов на основе свойств должны быть закодированы в 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"));
}
}
Тогда, конечно, вы должны изменить кодировку самого файла на UTF-8 в вашей IDE и использовать его следующим образом:
ResourceBundle bundle = ResourceBundle.getBundle(
"package.Bundle", new ResourceControl());