我有一个文本文件,每行包含一个字符串,如
String1
String2
String3
String4
String5
String6
在我的java代码中,我只是将其视为
try (BufferedReader br = new BufferedReader((new InputStreamReader(in, Charsets.UTF_8))))
while ((line = br.readLine()) != null) {
System.out.println(line);
}
然而,当我做了一个line.length()时,我感到很惊讶,因为我所有字符串的长度都超出了一个字符!在上面的例子中,8而不是7.我复制了文本文件内容并保存为一个简单的文本文件,当我在新文件上运行上面的代码时,长度变得正确。
当我在两个相同的文件上做差异时,我看到我的原始文件有这种编码。
<U+FEFF>String1^MString2^MString3^MString4^MString5^MString6
我相信我的java代码在给出长度时会考虑这些特殊字符吗?
是因为我使用的是Charsets.UTF_8吗?我可以做出哪些更改,以便在给我长度时,我的java代码会忽略这些字符。