IO流与字符编码

[code="java"]
OutputStreamWriter osw=
new OutputStreamWriter(new FileOutputStream("1.txt",true),"UTF-8");
//创建使用指定字符集的 OutputStreamWriter,意思是不是将流中的内容以UTF-8的编码形式写入文件1.txt中?
//然后1.txt这个文件的文件编码就是UTF-8?
osw.write(System.getProperty("line.separator"));
osw.write("Mircosoft IBM Sun Apple Hp");
System.out.println(osw.getEncoding());
//打印的是utf-8;
//但1.txt文件用emeditor或者IE打开怎么显示的是GB2312?
[/code]

还有,默认不指定字符编码的情况下System.out.println(osw.getEncoding());打印的是GBK;
怎么用emeditor或者IE打开显示的还是GB2312?

[quote] OutputStreamWriter osw=

new OutputStreamWriter(new FileOutputStream("1.txt",true),"UTF-8");

//创建使用指定字符集的 OutputStreamWriter,意思是不是将流中的内容以UTF-8的编码形式写入文件1.txt中? [/quote]

这个你理解的是对的。只是对内容编码,创建的文件(1.txt)就不一定是“UTF-8”格式的啦,至于1.txt是什么格式的和你的平台有干系,这个平台你创建文件时所在的那个平台环境。我在测试的时候使用eclipse进行操作,我的项目属性是GBK,所以生成的文件就是GBK的,可以在Eclipse右击查看属性得到编码。如果你使用CMD,那么就和你的CMD以及操作系统这个环境有关了。

没用过emeditor,我用的是ultraEdit没问题。
IE的话要指定编码。不然就是用默认的。

实际上那个utf-8是生效的。