String filepath=request.getParameter("t1c25");  获取一个JSP页面的file控件的路径。
其中 filepath是C:\Documents and Settings\lwl\×ÀÃæ\1.jpg   其实是桌面上的1.jpg  但获取出来的是英文File file=new File(filepath);//报错说找不到系统文件在网上找到说这样
File file=new File(URLDecoder.decode(filepath));
但也不行  还是报一样的错.
请问要怎么解决..

解决方案 »

  1.   

    File file=new File(URLDecoder.decode(filepath,"UTF-8"));或者GBK或者。。自己指定编码类型
      

  2.   

    java.net.URLDecoder.decode(url, "UTF-8");
      

  3.   

    File file=new File(URLDecoder.decode(filepath,"UTF-8"));
    File file=new File(URLDecoder.decode(filepath,"gbk"));
    这2个都不行,错误还是一样。
    C:\Documents and Settings\lwl\×ÀÃæ\1.jpg (系统找不到指定的路径。)
      

  4.   

    你先把路径写成死的试试
    public static void main(String[] args) {
    String path = "C:/Documents and Settings/Administrator/桌面/1.txt";
    File file = new File(path);
    System.out.println(file.length());
    }
    我试了没问题,UTF-8的工程
      

  5.   

    问题可能不在你NEW FILE的时候的编码,而是你获取路径时候编码就存在问题。把你获取路径的方法写出来看看,另外楼上的观点嘛,不是很沟通,作为程序应该写在哪里都行才能称为健壮,如果放在另一个地方就不行了,那还不如不做了算了。而且遇到了问题解决了才能学到东西。
      

  6.   

    页面先URLEncoder.encode再提交,servlet里面在decode。
    或者页面采用post提交,并指定编码格式,servlet里面request.setCharacterEncoding成与页面同样的编码。再去getparameter
      

  7.   

    C:\\Documents and Settings\\lwl\\桌面\\1.jpg 需要转移符
    我试过我的能行
    String   s   =   "C:\\Documents and Settings\\admin\\桌面\\1.JPG";   
        File   f=new   File(s);
        System.out.println(f.exists());     
      

  8.   

    String filepath=new String(request.getParameter("t1c25").getBytes("iso8859-1"), "gbk");这么写
      

  9.   

    jsp中
    <form action="Test" method="post">
    <input name="pic" value="C:\Documents and Settings\admin\桌面\heh.JPG"  /> 
    <input type="submit" />
    </form>servlet中
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html; charset=UTF-8");
    File file = new File(request.getParameter("pic").replace("\\", "\\\\"));
    System.out.println(file.isFile());我是通过测试的
    如果还是有问题 就看看字符集编码要统一