Кодировки Java при работе с консолью

145
18 февраля 2019, 21:20

Моя маленькая программа работает в консоли и читает данные из файла и показывает пользователю условно говоря и при соблюдении некоторых условий, записывает в него данные.

Когда запускаю через IDE, то работает всё отлично, но когда запускаю через консоль свой .jar файл, то всё что он прочитал из файла коверкается (примерно так: ЏалЈ вм бв®п).

Я так понимаю дело в кодировках, хотя я пытался решить эту проблему до её появления и чтение запись проводил со следующими параметрами:

BufferedWriter bwHabitList = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(HabitListFile), "UTF8"));
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(HabitListFile), "UTF8"));

Подскажите пожалуйста, где искать проблему?

Answer 1

Решение оказалось очень простым (не знаю почему никто не смог помочь, но спустя несколько дней поиска, нашёл сам ответ).

Дело было в том, что консоль работает в кодировке CP866 и соответственно если пытаться вводить данные в иной кодировке, то они искажаются.

Проверить кодировку консоли можно прописав в консоль команду chcp (консоль должна быть запущена от имени администратора).

READ ALSO
не работает hover в svg

не работает hover в svg

Добрый день столкнулся с такой проблемой , что hover не работает полноценно в svgПытаюсь менять цвет при наведении на path или класс какой нибудь:

162
Ошибка в двумерном массиве

Ошибка в двумерном массиве

Создается двумерный массив, который заполняется знаком -, а при i == 2, строка должна заполниться знаком +, но этого не происходитПочему?

160
Не работает switch (окончание слова, скрипт) [закрыт]

Не работает switch (окончание слова, скрипт) [закрыт]

введите сюда кодhttps://codepenio/anon/pen/YJrVJM

126