它是不支持这些字符的输出控制台。由于使用的是Eclipse,因此需要确保将其配置为使用UTF-8。您可以通过 _窗口
也可以看看:首选项>常规>工作区>文本文件编码>设置为UTF-8来执行此 *** 作_。
- Unipre-如何正确获取字符?
更新 按照更新的问题和意见,显然是UTF-8BOM是罪魁祸首。默认情况下,记事本会在保存时添加UTF-8BOM。看起来HTC上的JRE不会吞噬这一点。您可能要考虑使用此答案中
UnipreReader概述的示例,而不是您的代码。它会自动检测并跳过BOM。
InputStreamReader
FileInputStream fis = new FileInputStream(new File(fileName));UnipreReader ur = new UnipreReader(fis, "UTF-8");BufferedReader in = new BufferedReader(ur);
与实际问题无关,将
finally块中的资源关闭是一个好习惯,这样可以确保在发生异常时将其关闭。
BufferedReader reader = null;try { reader = new BufferedReader(new UnipreReader(new FileInputStream(fileName), "UTF-8")); // ...} finally { if (reader != null) try { reader.close(); } catch (IOException logOrIgnore) {}}
同样不相关的是,我建议将其放在
Patternp=Pattern.compile(",");循环之外,甚至将其设置为静态常量,因为编译起来相对昂贵,并且不必每次都在循环内执行此 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)