new String(str.getBytes("ISO-8859-1"),"gb2312");

解决方案 »

  1.   

    1.很有可能是你的font设置的有问题,否则不应该是问号,如果是内码的问题应该是乱码(如果之前只做了一次转换的话)
    2.如果你确认不是font的问题,可以作如下试验,先写一个类,在获取文件名的时候做如下转换(其中x[i]是文件名,getBytes()表示直接取机器原始本地字节,没有内码转换,gbk为最终目标内码)我做了一个BIG5的文件名,在jdk1.2上成功读出
    了文件名(不是乱码)
    file_name = new String(x[i].getBytes(),"GBK");
      

  2.   

    LANG=zh
    export LANG
    之后启动你的WEB+JSP+SEVLET服务器试一下
      

  3.   

    另外服务器不是我自己的是,租用的,linux+resin
      

  4.   

    哦,我想应该是resin的问题,我碰见过很多情况,如果服务器不是resin的话,显示是正常的,但是一用到resin上面,就显示为乱码啦好像你这样就可以解决啦:
    (2002-11-13 16:42:56)    Redhat
    那试试这样:
    java.net.URLEncoder.encode($str);
    或者这样处理一下中文再显示出来,看看,我不知道可不可解决啊。
    java.net.URLDecoder.encode($str)
      

  5.   

    ???????¤????.doc我记得这样的码,好像是unicode的码,你直接用
    new String(str.getBytes("ISO8859-1"),"GBK");
    看看是否可以解决如果不可以,用str.getBytes("ISO8859-1"),"UTF-8")之类的编码转换,测试一下。又有可能是utf-8编码的问题