jsp开发
有中文名的链接地址不能下载啊?
http://www.hq.net/hq/upload/合同管理字段表.xls下载不来.
而英文或数字的可以.http://www.hq.net/hq/upload/Eclipse 3.doc我先是把文件名保存在数据库中的,如合同管理字段表.xls,提供链接地址的时候是从数据库中读取数据(文件名)与www.xxx/upload/链接, 就是下不来.我在这发过几个贴,得到的答复不满意,所以花100分向专家求助.

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【ecjtuhr】截止到2008-07-18 13:43:42的历史汇总数据(不包括此帖):
    发帖的总数量:131                      发帖的总分数:560                      每贴平均分数:4                        
    回帖的总数量:55                       得分贴总数量:1                        回帖的得分率:1%                       
    结贴的总数量:130                      结贴的总分数:550                      
    无满意结贴数:68                       无满意结贴分:1160                     
    未结的帖子数:1                        未结的总分数:10                       
    结贴的百分比:99.24 %               结分的百分比:98.21 %                  
    无满意结贴率:52.31 %               无满意结分率:210.91%                  
    值得尊敬
      

  2.   

    是不是在linux里面 合同管理字段表.xls的名字是乱码。
      

  3.   

    主要是编码问题,你将文件名通过Urlencoder编码成UTF-8的编码应该就可以了。如果你使用的是tomcat或者JBOSS,也可能需要设置URIEncoding="UTF-8"
      

  4.   

       response.setHeader("Content-Disposition", "attachment; filename=" +  URLEncoder.encode(filename, "UTF-8"));
      

  5.   

    你后台打印出来的合同管理字段表.xls应该是乱码的,
    我以前也越到过
      

  6.   

    我就是用tomcat,设置了反而成了乱码。
      

  7.   


    response.setHeader("Content-Disposition", "attachment; filename=" +  URLEncoder.encode(filename, "UTF-8"));这种方式解决不了????
    有点神奇哦
    http://blog.csdn.net/lovingprince/archive/2008/07/18/2671580.aspx
      

  8.   

    我把我的代码贴出来吧。
    out.print("<td>"+"<a href='http://hq.vicp.net/hq/upload/"+strfilename+"'>"+strfilename+"</a></td>");  红色部分是从数据库中取出来的文件名, 蓝色部分是显示的文件名。这个文件名不是乱码。
      

  9.   


    /**
     * 处理含有中文字符的url
     * @param url
     * @return 新的url
     */
    public static String enCodeURL(String url,String code){
    if(!StringUtil.isFine(url))
    return null;
    Pattern pattern = Pattern.compile("[\u300a\u300b]|[\u4e00-\u9fa5]|[\uFF00-\uFFEF]",Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
    Matcher m = pattern.matcher(url);
    if(m.find()){
    int get=m.start();
    String suburl=url.charAt(get)+"";
    String encodesuburl="";
    try{encodesuburl=URLEncoder.encode(suburl,code);}catch(Exception e){}
    url=url.replaceAll(suburl,encodesuburl);
    url=enCodeURL(url,code);
    }
    url=url.replaceAll(" ","20%");
    return url;
    }
      

  10.   

    问题搞定了,是在tomcat的server.xml Connector中加一段代码就行了。URIEncoding="utf-8"
    谢谢大家的参与。谢谢17楼的朋友。
      

  11.   

    我来解释一下吧,你下次不要问我的马甲,他不回答问题的。让你的服务器支持中文编码,因为你这样下载等于是中文的URL,
    http://www.java2000.net/viewthread.jsp?tid=4957
      

  12.   

    Tomcat5.5.x配置整理 - 解决URI的乱码问题
    修改jakarta-tomcat-5.5.x\conf\server.xml来解决编码问题。 
    (给Connector 添加URIEncoding参数,参考http://blog.csdn.net/darkxie/archive/2004/10/25/TOMCATAPP.aspx) 
    (可以设置成GB18030) 
    查看复制到剪切板打印
    <Connector  
      port="8080"  
      maxThreads="150"  
      minSpareThreads="25"  
      maxSpareThreads="75"  
      enableLookups="false"  
      redirectPort="8443"  
      acceptCount="200"  
      connectionTimeout="20000"  
      disableUploadTimeout="true"  
      URIEncoding="GBK"  
      compression="on"  
      compressionMinSize="2048"  
      noCompressionUserAgents="gozilla, traviata"  
      compressableMimeType="text/html,text/xml" />  
    <Connector  
      port="8009"  
      enableLookups="false"  
      redirectPort="8443"  
      protocol="AJP/1.3"  
      URIEncoding="GBK" /> 谢谢21楼的朋友。