无法显示从文件中读取的某些字符

时间:2014-09-23 12:15:01

标签: java unicode

我使用Java将文件中的内容读入String。但是String不能显示某些字符,比如ćş。

这是我的代码:

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

PrintStream out = new PrintStream(System.out, false, "UTF-8");
while(true) {

    String line = br.readLine();
    if(line == null)
        break;
    out.println(line);
}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

据推测,此失败表明该文件不是UTF8编码。当你告诉java它是,它相信你,并且因为这是错误的,事情不起作用。

检测任意文件的编码没有实用的通用方法,所以你可以选择使用一些外部工具转换它,或者找出它实际上是什么编码并告诉Java(通过参数到BufferedStreamReader构造函数)。