Про кодировку в строке
Есть задача написать программу на двух языках, на английском и русском. Я использую Bundle для реализации этой цели. Все идет отлично, пока не начинаю выводить строку на русском языке, он выводит либо вопросительные знаки, либо краказябры на подобии таких "Ïðèâåò, ýòîé ìîé òåêñò".
Как можно изменить кодировку строки?
Такой метод
System.out.println(new String(bundleRU.getString("somevalue").getBytes(StandardCharsets.UTF_8)));
не работает.
А так вот он код
Locale ru = new Locale("ru", "RU");
ResourceBundle bundleRU = ResourceBundle.getBundle("minoroop/resources", ru);
System.out.println(new String(bundleRU.getString("somevalue").getBytes(StandardCharsets.UTF_8)));
и resources_ru.properties
somevalue=Привет, этой мой текст
Что я делаю не так?
Благодарю за помощь.
Ответы (1 шт):
Проблемы, которые могут возникнуть:
Неверная кодировка
Исправляется изменением кодировки при помощи специальных инструментов.
Например, можно использовать Notpad++.Неподходящий шрифт
Некоторые шрифты могут использовать, например, только латинские буквы. Попробуйте вручную загрузить в программу шрифт, который содержит символы кириллицы. Любые шрифты, которые есть в Java по умолчанию, не вызывают такой проблемы.