java中的Unicode文件处理
BufferedReader br=new BufferedReader( new InputStreamReader(new FileInputStream("g.txt"), "UTF-16"));
ArrayList<String> al=new ArrayList<String>();
String str;
while((str=br.readLine())!=null)
{
al.add(str);
}
Iterator<String> it=al.iterator();
while(it.hasNext())
{
str=it.next();
System.out.println(str);
}
在这段代码中,我可以正确地从Unicode文件中读取数据,也可以正确地插入arrylist,但当我尝试迭代数据时,它只打印问号,就像 ???? ?? ????, ?????, 等等 你能帮我解决这个问题吗
# 1 楼答案
这个关于StackOverflow的问题已经存在了,它与系统有关。出来println()使用默认的系统代码页,而不是设置的区域设置
要使用正确的字符编码打印文本,请创建PrintStream的新实例,并使用该实例打印文本行: