UTF_8字符​​串读取从文件计数特殊字符作为字符串长度

时间:2018-02-22 22:08:07

标签: java utf-8 character-encoding utf-16 non-ascii-characters

我有一个文本文件,每行包含一个字符串,如

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代码会忽略这些字符。

0 个答案:

没有答案