使用java读取使用utf-8编码的文本文件

2022-09-01 10:21:17

我在阅读使用utf-8编码的文本文件时遇到问题,我正在使用带有netbeans 7.2.1平台的java

我已经将java项目配置为处理UTF-8 javaproject==>右键单击==>属性==>source==>UTF-8

但仍然得到未知字符输出:

代码:

File fileDirs = new File("C:\\file.txt");

BufferedReader in = new BufferedReader(
new InputStreamReader(new FileInputStream(fileDirs), "UTF-8"));

String str;

while ((str = in.readLine()) != null) {
    System.out.println(str);
}

还有其他想法吗?

谢谢


答案 1

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;     
    public class test {
    public static void main(String[] args){

    try {
        File fileDir = new File("PATH_TO_FILE");

        BufferedReader in = new BufferedReader(
           new InputStreamReader(new FileInputStream(fileDir), "UTF-8"));

        String str;

        while ((str = in.readLine()) != null) {
            System.out.println(str);
        }

                in.close();
        } 
        catch (UnsupportedEncodingException e) 
        {
            System.out.println(e.getMessage());
        } 
        catch (IOException e) 
        {
            System.out.println(e.getMessage());
        }
        catch (Exception e)
        {
            System.out.println(e.getMessage());
        }
    }
}

您需要将 UTF-8 放在引号中


答案 2

您需要使用 Charset 参数指定 InputStreamReader 的编码。

Charset inputCharset = Charset.forName("ISO-8859-1");
InputStreamReader isr = new InputStreamReader(fis, inputCharset));

这对我来说是工作。我希望能帮助你。


推荐