扫描程序无法处理包含西里尔字符的文件

时间:2014-02-03 16:16:48

标签: java parsing cyrillic

我正在尝试使用Scanner类来解析文本文件。但事实证明,如果文件包含俄语单词,则扫描程序根本无法读取文件。 scanner.hasNextLine()在第一次调用时返回false。 这是Scanner类的正常行为吗?我可以采取措施解决问题吗?

1 个答案:

答案 0 :(得分:1)

要阅读包含其他编码的文本,您应该使用Scanner的构造函数和附加参数" encoding"。例如,如果包含俄语符号的文件采用UTF-8编码,请尝试以下方法:

String path = ... // full path of file
Scanner sc = new Scanner(new FileInputStream(path), "UTF-8");

//read file line by line
while (sc.hasNextLine()){
    //read one line
    String s = sc.nextLine();
    //do something with line
    System.out.println(s);
}