Java扫描程序更改字符串

Java扫描程序更改字符串,java,file-io,java.util.scanner,Java,File Io,Java.util.scanner,我正在用扫描仪从文本文件中读取一些基本文件 前5项是: 0 MR2Spyder 1 Tundra 3 Echo 3 Yaris 4 ScionxB 4 ScionxD 我通常实例化扫描仪,然后执行以下操作- String line = scanner.nextLine(); System.out.println(line); 然后我得到这个输出- ÿþ0 M R 2 S p y d e r 这对我来说没有意义-Scanner类有什么问题吗?我应该使用BufferedReader吗?您的

我正在用扫描仪从文本文件中读取一些基本文件

前5项是:

 0 MR2Spyder
1 Tundra
3 Echo
3 Yaris
4 ScionxB
4 ScionxD
我通常实例化扫描仪,然后执行以下操作-

String line = scanner.nextLine();
System.out.println(line);
然后我得到这个输出-

ÿþ0 M R 2 S p y d e r 

这对我来说没有意义-Scanner类有什么问题吗?我应该使用BufferedReader吗?

您的文件使用UTF-16编码。。。字符和标题
ÿþ
之间的空格表明了这一点——它是。见:

如果16位单元使用小尾端顺序,则字节序列将具有
0xFF
,后跟
0xFE
。此序列在预期文本为ISO-8859-1的文本显示中显示为ISO-8859-1字符

你必须这么做


您的文件是使用UTF-16编码的。。。字符和标题
ÿþ
之间的空格表明了这一点——它是。见:

如果16位单元使用小尾端顺序,则字节序列将具有
0xFF
,后跟
0xFE
。此序列在预期文本为ISO-8859-1的文本显示中显示为ISO-8859-1字符

你必须这么做


看起来您有编码问题。使用具有正确编码的扫描仪构造函数。您使用的是Unicode文件编码。指定。看起来您有编码问题。使用具有正确编码的扫描仪构造函数。您使用的是Unicode文件编码。指定该选项。@praks5432因为您在此处看起来较新,请不要忘记标记对解决问题最有帮助的答案。@praks5432因为您在此处看起来较新,请不要忘记标记对解决问题最有帮助的答案。
final Scanner scanner = new Scanner(file, "UTF-16");