2014-09-23 71 views
-1

我使用Java将文件中的内容读取到字符串中。但字符串不能显示一些字符,如ćşę。无法显示从文件中读取的某些字符

这里是我的代码:

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); 
} 

我怎样才能解决这个问题?

+0

试试这个线程..http://stackoverflow.com/questions/13877187/read-special-characters-from-a-file-and-write-in-another-file-using-java – Mohit 2014-09-23 12:20:00

+0

它可能会来从您的控制台不正确显示这些字符。尝试在文件中写入并检查它是否正确。 – 2014-09-23 12:20:03

+0

你得到了什么错误 – vikeng21 2014-09-23 12:21:07

回答

-1

推测这是失败的事实表明文件不是UTF8编码。当你告诉Java的时候,它相信你,而这是错误的,事情并不奏效。

没有实用的通用方法来检测任意文件的编码,因此您的选择是使用某种外部工具将其转换,或者找出它实际上是什么编码并告诉Java(通过BufferedStreamReader构造函数的参数)。

+0

该文件确实采用UTF8编码。我使用'file -I'检查了它。我的系统是Mac OS。 – Rafer 2014-09-23 14:53:43