Java BufferedReader阿拉伯语文本文件问题
问题:我用java阅读的文本文件中的阿拉伯语单词显示为一系列问号:??????
这是代码:
File[] fileList = mainFolder.listFiles();
BufferedReader bufferReader = null;
Reader reader = null;
try{
for(File f : fileList){
reader = new InputStreamReader(new FileInputStream(f.getPath()), "UTF8");
bufferReader = new BufferedReader(reader);
String line = null;
while((line = bufferReader.readLine())!= null){
System.out.println(new String(line.getBytes(), "UTF-8"));
}
}
}
catch(Exception exc){
exc.printStackTrace();
}
finally {
//Close the BufferedReader
try {
if (bufferReader != null)
bufferReader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
正如你所看到的,我已经在不同的地方指定了UTF-8编码,但我仍然得到问号,你知道我该怎么解决这个问题?
谢谢
没有找到相关结果
已邀请:
2 个回复
捕暑句簿姓
通过
没有charset参数的
使用平台默认编码从字符串中获取字节,本身可能不是UTF-8。您已经通过
将字节读取为UTF-8,因此您无需在之后按摩它。 此外,请确保您的显示控制台(您正在读取这些行的位置)支持UTF-8。在Eclipse中,您可以通过Window> Preferences> General> Workspace> Text File Encoding> Other> UTF-8来实现。 也可以看看: Unicode - 如何使角色正确?
渴翅吮斡撤
然后在Unicode代码图表中查找相关字符。 如果你发现它的打印是63,那么那些确实是问号......这表明你的文本文件不是真正的UTF-8开头。 另一方面,如果某些字符打印出“?”但是然后是63以外的值,那么这表明它是控制台显示问题并且您正在正确地读取数据。