繁体   English   中英

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

[英]Why can't the program read UTF-8 characters using Scanner?

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

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

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

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

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

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

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

要获得完整的行,请在扫描仪中指定定界符

scanner.useDelimiter("\n");

采用:

新的String(scanner.next()。getBytes(“ UTF-8”),Charset.forName(“ UTF-8”))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM