我有utf-8文件,我想阅读并在我的java程序中显示。
在eclipse控制台(stdout)或摇摆中我得到问号而不是正确的字符。
BufferedReader fr = new BufferedReader(
new InputStreamReader(
new FileInputStream(f),"UTF-8"));
System.out.println(fr.readLine());
inpuStreamReader.getEncoding() //prints me UTF-8
我通常没有问题在linux控制台或firefox等上显示重音字母。
为什么会这样?我生病了:/
谢谢你的帮助
答案 0 :(得分:2)
我不是Java专家,但您似乎正在创建一个UTF-8 InputStreamReader
,其文件不一定是UTF-8。
另请参阅:Java : How to determine the correct charset encoding of a stream
答案 1 :(得分:0)
听起来Eclipse控制台没有处理UTF-8字符,和/或为该控制台配置的字体不支持您尝试显示的Unicode字符。
如果将Eclipse配置为期望UTF-8字符,并且还要确保使用的字体可以显示文件中编码的Unicode字符,则可以使其工作。
来自Eclipse 3.1 New and Noteworthy页面:
您可以将控制台配置为 使用字符显示输出 编码与默认编码不同 使用控制台编码设置 发布的Common选项卡 配置。
至于Swing,我认为您需要选择正确的字体。
答案 2 :(得分:0)
当系统必须显示Unicode字符时,有几个参数在起作用 -
更新
不显示Unicode字符很可能是因为Cp1252用于编码控制台输出中的字符。这可以通过访问应用程序的运行配置来修改 - 它出现在运行时配置的Common选项卡中。