先生成这个文件,然后下载。现在出现了这样一个问题,服务器是linux系统,内码utf-8,我们要求文件的格式是shift_jis
生成文件的主程序见下面,我在本机win环境下运行正常,放到linux上、汉字部分还有像全角的-全变成乱码。那位高手指点下啊。FileOutputStream outStream = new FileOutputStream(filePath);
OutputStreamWriter outWriter = new OutputStreamWriter(outStream, "Shift_JIS");
BufferedWriter outBuffer = new BufferedWriter(outWriter); StringBuilder sline = null;
try {
for (int i = 0; i < resultLength; i++) {
sline = new StringBuilder("");
if ("9".equals(rss[i][0].toString().trim())) {
getSaiken9(sline, rss, i);
} if ("1".equals(rss[i][0].toString().trim())) {
getSaiken1(sline, rss, i);
}
sline.append("\n");
outBuffer.write(new String(sline.toString().getBytes(), "Shift_JIS"));
}

outBuffer.close();
outWriter.close();
outStream.close();



} catch (IOException e) {
throw e;
}

解决方案 »

  1.   

    楼住 windows默认的是gbk,你得到的字节是gbk的,你是想转换成utf-8?(我不懂linux),
    如果是这样那肯定就会乱码了。
      

  2.   

    你要求系统管理员把 os的编码设置为 GBK就好了
      

  3.   

    注意移植问题的话,在getBytes(),new String()类似的方法后面都要指明编码方式。如果不指明会使用系统默认的,那在不同的机器上得到的结果就会不一样
      

  4.   


    答:将
    outBuffer.write(new String(sline.toString().getBytes(), "Shift_JIS")); 改为:outBuffer.write(sline.toString(), "Shift_JIS"); 就行了