为什么程序不能使用Scanner读取UTF-8字符?

时间:2016-05-12 09:59:46

标签: java file utf-8 java.util.scanner

我以这种方式初始化了 Scanner 类对象:

Scanner scanner = new Scanner(new File("data.txt"),"utf-8");  

当我尝试使用ç或é等字符读取文件时,scanner.hasNextLine()返回false,扫描程序不会读取任何内容。

我尝试使用“iso-8859-1”。文件阅读成功。但是文件是UTF-8文件,像'ç'这样的字符显示为“ç”。

请帮我解决问题并使程序正确读取并显示UTF-8字符。

2 个答案:

答案 0 :(得分:0)

在编写UTF-8编码文本时指定编码

new String(scanner.next().getBytes(), Charset.forName("UTF-8"))

要获取完整的行,请在“扫描器”中指定分隔符

scanner.useDelimiter("\n");

答案 1 :(得分:0)

使用:

new String(scanner.next()。getBytes(" UTF-8"),Charset.forName(" UTF-8"))