Некорректно отображает русский шрифт

313
31 августа 2017, 18:18

Есть метод, который в зависимости от локали пользователя выводит сообщение. Проблема в том, что не отображаются русские символы. Я получаю такой вид

"������ �����, Kiev", а с английским все нормально "Good evening, Kiev".

Думал, может проблема в кодировки, не помогло. Вот код метода:

  public static void VuvodPriv(ResourceBundle bundle, String gorod, double time)
        {
            try {
                if (time >= 6.00 && time <= 9.00) {
                    String key = bundle.getString("Utro");
                    String s1 = new String(key.getBytes("ISO-8859-1"), "UTF-8");
                    System.out.println(s1 + gorod);
                } else if (time > 9.00 && time <= 19.00) {
                    String key = bundle.getString("Den");
                    String s1 = new String(key.getBytes("ISO-8859-1"), "UTF-8");
                    System.out.println(s1 + gorod);
                } else if (time > 19.00 && time <= 23.00) {
                    String key = bundle.getString("Vecher");
                    String s1 = new String(key.getBytes("ISO-8859-1"), "UTF-8");
                    System.out.println(s1 + gorod);
                } else if (time > 23.00 && time < 6.00) {
                    String key = bundle.getString("Noch");
                    String s1 = new String(key.getBytes("ISO-8859-1"), "UTF-8");
                    System.out.println(s1 + gorod);
                }
            }
            catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
    Locale current = Locale.getDefault();
    ResourceBundle bundle1 = ResourceBundle.getBundle("text",current);
И сам "properties" по умолчанию:
Utro = Доброе утро, 
Den = Добрый день,
Vecher = Добрый вечер, 
Noch = Доброй ночи, 
Answer 1

для ясности было бы неплохо взглянуть на ресурсный файл. предполагаю, что он сохранен в неправильной кодировке, т.е. не в той в которой читается. если он грузиться (по умолчанию) через PropertyResourceBundle то файл должен быть сохранен в кодировке ISO-8859-1

The property file read with this constructor must be encoded in ISO-8859-1. т.е. не латинские символы должны быть "заэскейплены" например:

km = \u043A\u043C

иначе, если хочется иметь читабельные файлы, придется имплементить свой ResourceBundle.Control и использовать его при создании bundle.

READ ALSO
Как работает оператор ==

Как работает оператор ==

Как работает оператор проверки на равенство ("=="), имеются ли ему альтернативы и в каких ситуациях следует его применять?

349
Без причины ошибка The database file is locked (database is locked)

Без причины ошибка The database file is locked (database is locked)

В общем, создал бота для телеграмаИспользую один, естественно, статический объект Connection для доступа к БД

323
Как узнать размер результата запроса в JPA?

Как узнать размер результата запроса в JPA?

Что-то совсем запутался с этим JPA(( Есть запрос

229
IF между строками JAVA [дубликат]

IF между строками JAVA [дубликат]

На данный вопрос уже ответили:

221