Про кодировку в строке

Есть задача написать программу на двух языках, на английском и русском. Я использую 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 шт):

Автор решения: Tech of the Absence

Проблемы, которые могут возникнуть:

  1. Неверная кодировка

    Исправляется изменением кодировки при помощи специальных инструментов.
    Например, можно использовать Notpad++.

  2. Неподходящий шрифт

    Некоторые шрифты могут использовать, например, только латинские буквы. Попробуйте вручную загрузить в программу шрифт, который содержит символы кириллицы. Любые шрифты, которые есть в Java по умолчанию, не вызывают такой проблемы.

→ Ссылка