1

我正在尝试按如下方式读取 UTF-8 编码文件-

import java.io.*;

class main {
    public static void main(String[] args) throws java.lang.Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("temp.txt"), "UTF-8"));
        String line;
        line = br.readLine();
        line = line.trim();
        boolean val1 = line.length() != 0;
        boolean val2 = !line.startsWith("//");
        System.out.println(val1 + " " + val2);
        br.close();
    }
}

文件 temp.txt 包含第一行 -

//,<verb>,<verb>

所以,输出应该是

true false

但我得到的输出为

true true

有人可以告诉我如何解决这个问题吗?

4

2 回答 2

1

您可能在文件的开头有一个BOM(字节顺序标记) 。

UTF-8 的这些 BOM 字节是:0xEF 0xBB 0xBF。它们只是文本编辑器在保存为 UTF-8 时添加的文件中的前 3 个字节。可能您的文本编辑器应该可以选择在没有 BOM 的情况下保存 UTF-8 文本。

于 2012-08-26T10:03:05.043 回答
0

在文本编辑器中打开 temp.txt 并确保 .txt 前面没有任何字符//

于 2012-08-26T09:58:10.777 回答