工作需要必须创建UTF-16格式的文件.这几天在网络上找,似乎没有此类话题,无论是国外还是国内.
代码: 
OutputStreamWriter fos = new OutputStreamWriter(new FileOutputStream(new File("c:\\2.csv")), "UTF-16");
fos.write("你好");
fos.flush();
fos.close();生成文件之后,我在windows平台打开.使用editeplus是乱码.使用记事本打开不乱码,保存时察看文件编码确是unicode big endian.  使用写字板打开时乱码.  使用excel打开仍然乱码.我不过,使用下面代码,就可以顺利创建UTF-8的文件.
OutputStreamWriter fos = new OutputStreamWriter(new FileOutputStream(new File("c:\\2.csv")), "UTF-8");
fos.write("你好");
fos.flush();
fos.close();
哪位碰到过这个问题.帮忙看看..

解决方案 »

  1.   

    用 Eclipse 吧,这个可以指定文件自己的编码的! 比如 UTF-16
      

  2.   

    对了,我再强调一下,我必须使用编程方式.
    而且,我已经使用eclipse建立了一个文件,修改成UTF-16,再用windows打开同样存在这样的问题.
      

  3.   

    那位朋友的方法可以,我给了点建议,希望对你有帮助。我也曾经为了处理前几个字符烦恼过,为何Window要搞这些事情呢!Linux 就没有这个问题,而文本文件应该是是跨平台的。
      

  4.   

    还真的没有碰到过这样的问题。关注一下。
    另外,是否就不应该使用 writer?虽然它包了一个stream。
      

  5.   

    UNICODE分为是UTF-8,UTF-16和UTF-32
    UTF-16是以16位来存储一个字符
    也就是我们通常意义上的UNICODE
    LINUX默认字符集好像是UNICODE
    所以显示没问题 但是WINDOWS默认的字符集好像就有问题了。
      

  6.   

    jiangnaisong  已经在其它帖子上给与正确答案,为了识别unicode文件,需要在文件头加入一个标示。详情参考。那个相同帖子。