Java не читает текст на португальском

#java

#java

Вопрос:

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

Я перепробовал много способов заставить его читать, в конце он обрабатывает текст так, как будто в нем вообще нет строк.

 import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Indice {
    public static void main(String[] args)throws FileNotFoundException {
    Scanner sc = new Scanner(new File("Resources/dedu.txt"));
    int i = 1;
    while (i <= 20000) {
        String line = sc.nextLine();
        char f = line.charAt(0);
        if (f == '-') {
        System.out.println(line);
    }
    i  ;
    }
}

}
  

Он должен печатать строки, начинающиеся с ‘-‘, вместо этого он ничего не делает или показывает ошибку.

Комментарии:

1. в чем ошибка?

2. Какие входные данные вы пытаетесь прочитать, но не можете?

3. Читать ericlippert.com/2014/03/05/how-to-debug-small-programs советы по отладке вашего кода

4. Это может быть проблема с кодировкой. Вместо scanner используйте FileInputStream и передайте тип кодировки в качестве параметра

5. Java не имеет особого смысла в португальских, китайских или английских символах . Он знает о национальных и языковых локализациях , но главное, что вам нужно знать для чтения текста, — это кодировка символов , также известная как charset. Инициализируя сканер с помощью Scanner(File) конструктора, вы полагаетесь на то, что файл будет закодирован в соответствии с системной кодировкой по умолчанию. Если есть какой-либо шанс, что это на самом деле не его кодировка, тогда вам следует использовать один из конструкторов, который позволяет вам указывать (и вы должны указывать правильно, конечно).