yipinhanxin 2010-07-08 18:57
浏览 220
已采纳

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?

  • 写回答

2条回答 默认 最新

  • 「已注销」 2010-07-09 18:02
    关注

    [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以及操作系统这个环境有关了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?