请高手 帮忙啊!
我在java中这样写的生成txt文件
Writer  mywriter = new PrintWriter(new OutputStreamWriter(fileOut, "gb2312"));
在Windows下生成是ansi格式 的,redhat中默认字符是utf-8,但这我想生成ansi的,但是我上面的写法还是生成了utf-8,请问有什么解决方案,不改变linux 默认字符集

解决方案 »

  1.   

    要么改变系统默认字符集,要么把输出流改成utf8。
    你的设置确实让输出流使用了gb2312写文件,但是文件的声明依然是utf8,打开还是乱码,除非生成的文件你另存为gb2312的
      

  2.   

    Writer mywriter = new PrintWriter(new OutputStreamWriter(fileOut, "gb2312"));
    只是定义了你写入文件数据的编码类型linux 文件系统依然是utf-8的 , 内容要乱
    你可以用vi 
    iconv
    enconv
    进行文件编码转换
    。。java 直接转的不知道怎么弄
      

  3.   

    linux下locale -a 查看当前的编码集
    在 .bash_profile里添加
    LANG=zh_CH.gbk
    export LANG
    这样你以后写的文件就不会再乱码了这个是linux操作系统的事情,你的java代码没有问题,不用改的
      

  4.   

    你指定了 GB2312 还生成 UTF-8 的文件?不可能吧?