在URL的传输中好象采用的是UTF-8的编码方式来发送的,UTF-8好像不支持中文,这时英文文件名没有问题,但是中文就会被重新编码例如空格会被重新编码成%20,所以你的文件名不能用中文或者其他UTF-8不支持的编码方式,所以最好还是用英文字母,数字,或者下划线的组合。

解决方案 »

  1.   

    主要是提供WEB服务的WEB服务器不支持中文文件名,如Apache就不支持,可以使用IIS来支持。
      

  2.   

    java.net.
    有个类试看看
    URLEncoder.encode
      

  3.   

    String firstText = java.net.URLEncoder.encode(firstText_temp);
           response.sendRedirect(url+page+".jsp?firstText="+firstText+"&secText="+secText);然后new String( request.getParameter( "firstText" ).getBytes( "8859_1") , "GB2312" )
      

  4.   

    String s=request.getParameter("name");
    response.sendRedirect("send.jsp?name="+java.net.URLEncoder.encode(s));
    楼上说的大概是这个意思,你试试看能不能用,
    还有xiangbo520的说法是错误的,utf-8是支持中文的,只是要求用什么格式编码就要用什么格式解码
      

  5.   

    楼上说的对就用java.net.URLEncoder.encode没错的我这有个实例:<%@ page contentType="text/html;charset=gbk"%>
    <%@ page import="java.net.*"%> 
    <FORM METHOD="get" ACTION="">
    <INPUT TYPE="text" NAME="myName"><br>
    <INPUT TYPE="submit">
    </FORM>
    <%
        String myName = request.getParameter("myName");
    if (myName==null || myName.equals(""))
    {
    return ;
    }
    //下面的语句将%D6%D0%B9%FA 解释为字符"中国"
    myName = URLDecoder.decode(myName);
    //下面的语句将"中国"解释为%D6%D0%B9%FA 
    myName = URLEncoder.encode(myName); 
    out.println(myName);
    %>Goog luck!!!
      

  6.   

    to: jk3278jk(编程先锋)
    你的例子在什么配置环境下成功的?
    我的是2K+tomcat5 怎么还是测试输出还是乱码啊??