@marchSolution

Не воспринимает русский текст при запуске jar файла из консоли, как можно исправить?

Суть вопроса следующая. В качестве учебного проекта решил написать консольное приложение для проверки знаний английских слов, программа примитивная и не претендует ни на что.
Код отстойный, пока учусь. Суть в следующем, все работает, проверяет слова, выводит результат, загружаешь любой txt'шник подготовленный и работает. Через IDEA.
НО при компиляции и запуске из командной строки не воспринимает русский язык.
Если проверочное слово на английском, то ответ засчитывается.
Как это можно исправить, может быть проблема в кодировке?
Пример txt'шника:
cat
кошка
dog
собака
mouse
мышь
book
книга

Если будет так, то проверка работает корректно:
cat
koshka
dog
sobaka
mouse

Присваивание кодировки InputStream'у не помогло.

Заранее спасибо.

Исходный код метода:
public class Printed {

    // построчное чтение из файла
    public static void FileReader() throws Exception {
        String s;
        int j = StringMeter.StringCounter();

        String words[] = new String[j];
        BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
        int answerCount = 0;
        Scanner scanner = new Scanner(System.in);
        String answer;
        // Вводим в консоль путь к файлу с расширением
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        while (true) {
            // пробуем прочитать файл, если файл не найдем перехватываем исключение и пробуем снова
            // при успешном чтении цикл прерывается и распечатывает содержимое в консоль
            try {
                System.out.print("Enter filename : ");
                s = buf.readLine();
                buf = new BufferedReader(new FileReader(s));
                break;
            } catch (Exception e) {
                System.out.println("Файл не найден!");
                continue;
            }
        }



        for(int i = 0; i < j;i++){
            words[i]= buf.readLine();
        }

        for(int i = 0; i < j;i = i +2){
            System.out.println(words[i]);
            String string = buffer.readLine();
            if(string.equals(words[i+1])){
                answerCount++;
            } else System.out.println("     НЕ ВЕРНО!");

        }



        //System.out.println(answerCount);

        System.out.println("Ваш результат: " + answerCount + " из " + j/2);


        buf.close();
    }
}
  • Вопрос задан
  • 2151 просмотр
Пригласить эксперта
Ответы на вопрос 1
@asd111
txt в какой кодировке ? Попробуйте txt сохранить в utf-8, ещё попробуйте запустить java с флагами -Dfile.encoding=UTF-8 т.е. java -jar -Dfile.encoding=UTF-8 myJar.jar
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы