Хочу проверить правильность заполнения из проперти и вывожу в лог. Но там абракадабра непонятная. И не понятно: проблема в кодировке или нужно локализацию делать? в с++ легко делается, но про java не нашел в интернете. Пользуюсь IntelliJ IDEA
Вы, наверное, работаете в Windows? Там главная причина вывода нерусских букв заключается в OEM кодировке системы, под которую подстраиваются и java, и консоль.
Во-первых, есть кодировка по умолчанию, которой пользуется Java для ввода-вывода. Она задаётся при старте в свойстве file.encoding и доступна для чтения как Charset.defaultCharset(). В Windows эта кодировка устанавливается в OEM codepage.
Проверить можно вот такой маленькой программой:
import java.nio.charset.Charset;
class Main {
public static void main(String[] args) {
System.out.println(Charset.defaultCharset());
}
}
Во-вторых, есть ещё кодировка символов в консоли. Консоль линукса, как правило, выводит в UTF-8, но консоль Windows выводит в кодировке текущей локали (OEM codepage).
Посмотрите в свойствах консоли, какая страница установлена у вас.
Кодировка консоли меняется командой chcp. Кодовая страница UTF-8 - 65001
Попробуйте:
chcp 65001
java "-Dfile.encoding=utf-8" YourMainClass
(если в шрифте консоли нет кириллических символов, вместо них будут выводиться серые квадратики)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей