Кодировка символов System.out

Я запускаю свою программу Java из командной строки (Windows 7). Чтобы упростить дело, я описываю только соответствующую часть.

public static void main(String[] args) {
    System.out.println("Árpád");
}

Мой вывод - мусор. Это, очевидно, проблема кодирования символов, венгерские символы Á и á не отображаются правильно. Я пробовал следующее:

public static void main(String[] args) {
    PrintStream ps = new PrintStream(System.out, true, "UTF-8");
    ps.println("Árpád");
}

Но мой вывод все еще мусор. Как я могу решить эту проблему с кодировкой символов в командной строке Windows 7? Благодаря

Ответ 1

Я получил ваш код для работы, найдя правильную кодировку из командной строки, а затем либо используя версию PrintStream с этой кодировкой, либо указав ее в командной строке и просто используя System.out.println.

Чтобы найти кодировку в командной строке, запустите chcp. Вот результат, который я получил:

Active code page: 850

Это соответствует имени кодировки Java "IBM850". Таким образом, это создает правильный вывод в командной строке:

java -Dfile.encoding=IBM850 Test