精华内容
下载资源
问答
  • 之前看很多博客都是通过 判断userAgent来处理文件名的中文乱码问题,如下 if (userAgent.indexOf("MSIE")!=-1 || userAgent.indexOf("Trident")!=-1 || userAgent.indexOf("Edge")!=-1 ) { // ie fileName = new ...

    之前看很多博客都是通过 判断userAgent来处理文件名的中文乱码问题,如下

     if (userAgent.indexOf("MSIE")!=-1 || userAgent.indexOf("Trident")!=-1 || userAgent.indexOf("Edge")!=-1 ) {     // ie  
       fileName = new String(fileName.getBytes("GBK"), "iso-8859-1");  
                       } else if (null != userAgent && -1 != userAgent.indexOf("Mozilla")) {           // 火狐,chrome等  
                           fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");  
                       } 

    但博主实际开发中发现,这种也不是百分之百有效,最简单粗暴的方式就是把fileName 先BASE64编码存为url,然后下载时候再把fileName用BASE64解码,就可以规避浏览器对中文编码不一致的问题了,代码如下:

    package com.nercel.cyberhouse.ws.sns;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.UUID;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.multipart.MultipartFile;
    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;
    import com.alibaba.fastjson.JSON;
    import com.nercel.cyberhouse.util.ServerConfig;
    import com.nercel.cyberhouse.vo.UFile;
    import com.nercel.cyberhouse.vo.UploadFile;
    import java.util.regex.*; 
    
    @Controller
    @RequestMapping("sns")
    public class FileUpload {
        private String CYBERHOUSE_PATH =  ServerConfig.get("cyberhouse.root");
    
           @RequestMapping(value = "/uploadFile", produces = "text/plain; charset=utf-8")
           public @ResponseBody String uploadFile(@RequestParam(value = "file", required = false) MultipartFile file,int userId,HttpServletRequest request, HttpServletResponse response) {  
                UploadFile upFile = new UploadFile();
                String path = request.getSession().getServletContext().getRealPath("upload/sns/"+userId+"/");  
              //  String fileName = StringFilter(file.getOriginalFilename());
                String fileName = file.getOriginalFilename();
                String ext=fileName.substring(fileName.lastIndexOf(".")+1);
    
                if(file.getSize()>1024*1024*50){
                    upFile.setCode(1);
                    upFile.setMsg("单个文件/图片大小不能超过50M!");
                    return JSON.toJSONString(upFile);
                }
                String name=UUID.randomUUID().toString()+"."+ext;
                String downLoadPath=path+"/"+name;
                File targetFile = new File(path,name);  
                if(!targetFile.exists()){  
                    targetFile.mkdirs();  
                }  
               try {  
                  file.transferTo(targetFile);  
                  upFile.setCode(0);
                  UFile uf=new UFile();
                  uf.setName(fileName);
                  byte[] b = null;  
                  b = fileName.getBytes("utf-8");  
                  uf.setSrc(CYBERHOUSE_PATH+"/sns/downLoadFile?downLoadPath="+downLoadPath+"&fileName="+new BASE64Encoder().encode(b));
                  upFile.setData(uf);
                } catch (Exception e) {  
                    e.printStackTrace();  
                }  
                return JSON.toJSONString(upFile);    
          }
    
    
            @RequestMapping("/downLoadFile")  
            public void downLoadFile(String downLoadPath, String fileName,HttpServletResponse response,HttpServletRequest request) throws UnsupportedEncodingException {  
                 BufferedInputStream bis = null;  
                    BufferedOutputStream bos = null;          
                    byte[] b = null;  
                    String resultFileName = null;  
                        BASE64Decoder decoder = new BASE64Decoder();  
                            try {
                                b = decoder.decodeBuffer(fileName);
                            } catch (IOException e1) {
                                e1.printStackTrace();
                            }  
                            resultFileName = new String(b, "utf-8");  
    
                    try {  
                        response.setCharacterEncoding("UTF-8"); 
    
                        long fileLength = new File(downLoadPath).length();
                        String userAgent = request.getHeader("User-Agent");                
                        response.setHeader("Content-disposition", "attachment; filename="+new String(resultFileName.getBytes("gbk"),"iso-8859-1"));
                        response.setContentType("application/x-download;");
    
                        response.setHeader("Content-Length", String.valueOf(fileLength));  
                        bis = new BufferedInputStream(new FileInputStream(downLoadPath));  
                        bos = new BufferedOutputStream(response.getOutputStream());  
                        byte[] buff = new byte[2048];  
                        int bytesRead;  
                        while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {  
                            bos.write(buff, 0, bytesRead);  
                        }  
                        bos.flush();  
                    } catch (Exception e) {  
                    } finally {  
                        if (bis != null) {  
                            try {
                                bis.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }  
                        if (bos != null) {  
                            try {
                                bos.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }  
                        }  
                    }  
            }  
    
           // 过滤特殊字符  
           public static String StringFilter(String str) throws PatternSyntaxException{     
                  // 清除掉所有特殊字符和空格
                  String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\]<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、? ]";  
                  Pattern p = Pattern.compile(regEx);     
                  Matcher m = p.matcher(str);     
                  return m.replaceAll("").trim();     
           }
    
           //layui上传文件公共服务
           @RequestMapping(value = "/upload", produces = "text/plain; charset=utf-8")
           public @ResponseBody String upload(@RequestParam(value = "file", required = false) MultipartFile file,HttpServletRequest request, HttpServletResponse response) {  
                UploadFile upFile = new UploadFile();
    
                String msg="上传失败!";
                long fileSize = file.getSize();
                System.out.println("fileSize="+fileSize);
    
                if(fileSize>2097152){
                    upFile.setCode(1);
                    upFile.setMsg("上传文件不能超过2M!");
                    return JSON.toJSONString(upFile);   
                }
    
                String fileName = StringFilter(file.getOriginalFilename());
                String fileType= fileName.substring(fileName.lastIndexOf(".")+1);
                Date now = new Date(); 
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");//可以方便地修改日期格式
                String today = dateFormat.format(now); 
                String path = request.getSession().getServletContext().getRealPath("upload/layuiUploads/"+fileType+"/"+today);
                String name=UUID.randomUUID().toString()+fileName;
                String downLoadPath=path+"/"+name;
                File targetFile = new File(path,name);  
                if(!targetFile.exists()){  
                    targetFile.mkdirs();  
                }  
               try {  
                  file.transferTo(targetFile);
                  upFile.setCode(0);
                  UFile uf=new UFile();
                  uf.setName(fileName);
                  uf.setSrc(CYBERHOUSE_PATH+"/sns/downLoadFile?downLoadPath="+downLoadPath+"&fileName="+fileName);
                  upFile.setData(uf);
                  msg="上传成功!";
                  upFile.setMsg(msg);
                } catch (Exception e) {  
                    e.printStackTrace();  
                }  
               System.out.println(JSON.toJSONString(upFile));
                return JSON.toJSONString(upFile);    
          }
    
    }
    展开全文
  • 在前面一篇文章里(浅谈 COMMON-FILEUPLOAD1.1 的使用 )我介绍了用JSP上传文件的方法,提到上传与之对应的便是下载,可能很多网友会说下载直接做个超连接不就可以了,当然对于一般的文件(不怎么重要的,或者是用来共享的)...

     在前面一篇文章里(浅谈 COMMON-FILEUPLOAD1.1 的使用 )我介绍了用JSP上传文件的方法,提到上传与之对应的便是下载,可能很多网友会说下载直接做个超连接不就可以了,当然对于一般的文件(不怎么重要的,或者是用来共享的)就足够用了,但是涉及到一些安全问题,或者是一些图片,txt,word这类的文件下载时就会碰到问题了,最常见的问题就是当你点击图片的链接时,图片是直接打开而不是提示保存的,可能有的时候你不喜欢直接打开而是直接保存,这时我们就要用到数据流来控制下载,

            长话短说,这里我只提个重点:就是当下载中文名称的文件时,提示保存时显示的文字是乱码,这就是我们今天要重点解决的.

    相关资料:

          Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。

      首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。基于这种乱码,建议在Java文件中尽量不要写中文(注释部分不参与编译,写中文没关系),如果必须写的话,尽量手动带参数-ecoding GBK或-ecoding gb2312编译;对于JSP,在文件头加上<%@ page contentType="text/html;charset=GBK"%>或<%@ page contentType="text/html;charset=gb2312"%>基本上就能解决这类乱码问题。

      要重点讨论的是第二类乱码,即Java程序与其他存储媒介交互时产生的乱码。很多存储媒介,如数据库,文件,流等的存储方式都是基于字节流的,Java程序与这些媒介交互时就会发生字符(char)与字节(byte)之间的转换,例如从页面提交表单中提交的数据在Java程序里显示乱码等情况。

      如果在以上转换过程中使用的编码方式与字节原有的编码不一致,很可能就会出现乱码。

    解决方法:

      对于流行的Tomcat来说,有以下两种解决方法:

      1) 更改 D:/Tomcat/conf/server.xml,指定浏览器的编码格式为“简体中文”:

      方法是找到 server.xml 中的

        <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" redirectPort="8443" acceptCount="100"
        connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />

    我实现的代码:

    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import bhcode.bhcommon.bhString;
    public class bhDown extends HttpServlet{
       public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{  
       try {  
           String filename = request.getParameter("file");   
        if(filename!=null)
        {   
        String filename2 = new String(request.getParameter("file").getBytes("GBK"),"ISO_8859_1");
        bhString bhstr = new bhString(); //我自己定义的类
        filename2 = bhstr.getFileName(filename2);//用来获取文件名,比如提交的是upload/test.jpg,取得test.jpg
        String rootpath = getServletContext().getRealPath("/");  
        String filepath = rootpath + filename;
        FileInputStream fis = new FileInputStream(filepath);
        ServletOutputStream fout = response.getOutputStream();
         response.setContentType("application/octet-stream;charset=GBK");     
        response.setHeader("Content-disposition","attachment;filename=/""+ filename2 + "/"");  
        int byteRead;   
        while((byteRead = fis.read())!=-1){
           fout.write(byteRead);   
        }
       fis.close();
       fout.close();
       }
        }
        catch (Exception e) {}  
      return;  
       }
       public void doGet(HttpServletRequest request, HttpServletResponse response){
       try{
         doPost(request,response);
      }
      catch(Exception e){}
     }
    }

    前提:修改配置文件server.xml

        <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" redirectPort="8443" acceptCount="100"
        connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>

    注意红色的就是要加上去的.

    好了,原理和重点我都讲了,剩余的任务就是你自己去测试一下了,有什么问题可以直接给我回帖或来信blackhawkcn@126.com  更多文章请关注我的博客,共同交流,共同进步!


    本文来自CSDN博客http://blog.csdn.net/chinabh/archive/2006/05/23/751429.aspx

     

     

    文件下载(解决中文文件名下载乱码问题)

    关键字: jsp

    文件下载页面:download.jsp

    java 代码
    1. <%@ page contentType="text/html;charset=utf-8" %>   
    2. <%@ page import = "java.util.*" %>   
    3. <%@ page import = "java.io.*" %>   
    4. <%@ page import = "java.net.*" %>   
    5. <%   
    6. //防止IE缓存   
    7. response.setHeader("pragma","no-cache");   
    8. response.setHeader("cache-control","no-cache");   
    9. response.setDateHeader("Expires",0);   
    10. //设置编码   
    11. request.setCharacterEncoding("UTF-8");   
    12.   
    13. String fileName = request.getParameter("fileName");   
    14. //取到文件   
    15. File file = new File(application.getRealPath("/")+"upload/" + fileName);   
    16. response.reset();   
    17. response.setContentType("application/octet-stream;charset=UTF-8");   
    18. //System.out.println(response.getCharacterEncoding());   
    19. //一定要对fileName进行decode   
    20. response.addHeader("Content-Disposition""attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));   
    21. response.setContentLength((int) file.length());   
    22.   
    23. byte[] buffer = new byte[4096];   
    24. BufferedOutputStream output = null;   
    25. BufferedInputStream input = null;   
    26.   
    27. // 写缓冲区:   
    28. try {   
    29.     output = new BufferedOutputStream(response.getOutputStream());   
    30.     input = new BufferedInputStream(new FileInputStream(file));   
    31.   
    32.     int n = (-1);   
    33.     while ((n = input.read(buffer, 04096)) > -1) {   
    34.         output.write(buffer, 0, n);   
    35.     }   
    36.     response.flushBuffer();   
    37. }   
    38. catch (Exception e) {   
    39. // maybe user cancelled download   
    40. finally {   
    41.     if (input != null) input.close();   
    42.     if (output != null) output.close();   
    43. }   
    44. %>  

     

     

     

     

    response.setHeader(...)下载中文文件名乱码问题

    关于中文文件下载的问题,网上的咨询和答疑已经很多,

    我原来处理下载的代码如下:

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

    下载的程序里有了这句,一般在IE6的下载提示框上将正确显示文件的名字,无论是简体中文,还是日文。不过当时确实没有仔细测试文件名很长的中文文件名。 先如今经过仔细测试,发现文字只要超过12个字,就不能下载了。经过好一番google和反复测试,总算对这个问题有了系统的认识,

    分列如下: 一. 通过我原来的方式,也就是先用URLEncoder编码,当中文文字超过17个时,IE6 无法下载文件。这是IE的bug,参见微软的知识库文章 KB816868 。原因可能是因为ie在处理 Response Header 的时候,对header的长度限制在150字节左右。而一个汉字编码成UTF-8是9个字节,那么17个字便是108个字节,所以便会报错。微软提供了一个补丁,可以从 这里 下载。这个补丁需要先安装ie6 sp1。因为我平时勤打补丁,我的IE6版本号是 6.0.2800.1106.xpsp2_xxxxx。所以我可能已经安装过了补丁,从而可以下载,但仍然出现文件名被截断的现象。微软让我们等待IE下 一个service pack的发布。我今天也上网看到了好消息,迫于firefox的压力,IE7可能在年中发布。另外,Firefox 不支持这样的方式,将把编码后的%xx%xx直接作为文件名显示。

    二. 我尝试使用 javamail 的MimeUtility.encode()方法来编码文件名,也就是编码成 =?gb2312?B?xxxxxxxx?= 这样的形式,并从 RFC1522 中找到对应的标准支持。不过很遗憾,IE6并不支持这一个标准。我试了一下,Firefox是支持的。

    三. 按网上很多人提供的解决方案:将文件名编码成ISO8859-1似乎是有效的解决方案,代码如下: response.setHeader( "Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" ) ); 在确保附件文件名都是简 体中文字的情况下,那么这个办法确实是最有效的,不用让客户逐个的升级IE。如果台湾同胞用,把gb2312改成big5就行。但现在的系统通常都加入了 国际化的支持,普遍使用UTF-8。如果文件名中又有简体中文字,又有繁体中文,还有日文。那么乱码便产生了。另外,在我的电脑上Firefox (v1.0-en)下载也是乱码。

    折中考虑,我结合了一、三的方式,

    代码片断如下: String fileName = URLEncoder.encode(atta.getFileName(), "UTF-8");

     if (fileName.length() > 100)

    { String guessCharset = xxxx /*根据request的locale 得出可能的编码,中文操作系统通常是gb2312*/

     fileName = new String(atta.getFileName().getBytes(guessCharset), "ISO8859-1");

    }

     response.setHeader("Content-Disposition", "attachment; filename=" + fileName);

     

    下面是解决文件名空格问题

    String fileName = StringUtils.trim(file.getName());

    String formatFileName = encodingFileName(name);

    //在后面定义方法encodingFileName(String fileName);

    response.setHeader("Content-Disposition", "attachment; filename=" + formatFileName );

    //处理文件名中出现的空格

    //其中%20是空格在UTF-8下的编码

    public static String encodingFileName(String fileName)

    {

    String returnFileName = "";

     try {

    returnFileName = URLEncoder.encode(fileName, "UTF-8");

    returnFileName = StringUtils.replace(returnFileName, "+", "%20");

    if (returnFileName.length() > 100)

    {

    returnFileName = new String(fileName.getBytes("GB2312"), "ISO8859-1");

    returnFileName = StringUtils.replace(returnFileName, " ", "%20"); } } catch (UnsupportedEncodingException e) { e.printStackTrace();

    if (log.isWarnEnabled()) { log.info("Don't support this encoding ..."); } }

     return returnFileName; }

     

     

     

     

     

     

    展开全文
  • javaweb下载文件及文件名中文乱码处理
    文件下载

    需要先导入两个jar包
    commons-fileupload-1.3.1.jar
    commons-io-2.4.jar

     String fileName = request.getParameter("fileName");
       //下载文件,需要设置两个响应头
       //application/octet-stream任意文件类型
       response.addHeader("content-Type", "application/octet-stream");
       //对于不同浏览器进行处理
       //根据请求头user-agent
       //attachment打开对话框下载  inline直接打开
       String agent = request.getHeader("User-agent");
       if(agent.indexOf("Firefox")!=-1) {
        response.addHeader("content-Disposition", "attachment;fileName==?UTF-8?B?"+Base64.getEncoder().encodeToString(fileName.getBytes("utf-8"))+"?=");
       }else if(agent.indexOf("Edge")!=-1) {
        response.addHeader("content-Disposition", "attachment;fileName="+URLEncoder.encode(fileName, "utf-8"));
       }
       //servlet 通过文件路径将文件转换为输入流 读到servlet中
       InputStream in = getServletContext().getResourceAsStream("/res/"+fileName);
       //输出流
       ServletOutputStream out = response.getOutputStream();
       byte[] bt = new byte[10];
       int len = -1;
       //将缓冲区的读取bt
       while((len=in.read(bt))!=-1) {
        //将bt里的输出到response
        out.write(bt,0,len);
       }
       out.close();
       in.close();
    文件下载名中文乱码问题

    (1).edge

    response.addHeader("content-Disposition", "attachment;fileName="+URLEncoder.encode(fileName, "utf-8"));

    (2).火狐

    response.addHeader("content-Disposition", "attachment;fileName==?UTF-8?B?"+Base64.getEncoder().encodeToString(fileName.getBytes("utf-8"))+"?=");

    (3).综合处理

       String agent = request.getHeader("User-agent");
       if(agent.indexOf("Firefox")!=-1) {
        response.addHeader("content-Disposition", "attachment;fileName==?UTF-8?B?"+new String(Base64.encodeBase64(fileName.getBytes("utf-8")))+"?=");
       }else if(agent.indexOf("Edge")!=-1) {
        response.addHeader("content-Disposition", "attachment;fileName="+URLEncoder.encode(fileName, "utf-8"));
       }
    展开全文
  • 解决PHP下载文件名乱码的问题
  • Chrome下载文件,文件名出现乱码解决
                   

            环境:Windows 7 英文旗舰版 + Chrome 22.0

     

            问题:使用Chrome下载文件,文件名出现乱码


            解决:我使用过以下设置:扳手-------->Tools(工具)-------->Encoding(编码)-------->选择Unicode,并且把Auto Detect(自动检测)勾上。但是下载文件,如果文件名还有中文,文件名仍然会出现乱码。所以这种方式不可行。







             现给出解决办法:扳手-------->Settings(设置)-------->ShowAdvance Settings(显示高级设置)-------->Web Content(网页内容)-------->Customizefonts(自定义字体)-------->Encoding(编码)-------->会发现默认设置的是ISO-8859-1-------->现在把它设置成Chinese Simplified(GBK)(中文简体 GBK)-------->你也可以设置自己喜欢的字体-------->问题解决。


     















            总结:如果操作系统是英文版,在安装chrome时,会将编码设置成别的,所以需要设置chrome显示的字体和编码。


     

            参考资料:http://zhidao.baidu.com/question/166207881



               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • Java下载文件,文件名中文乱码问题

    千次阅读 2016-06-28 13:21:24
    在Java的web开发中,文件下载功能的文件名文件名乱码问题是经常遇到的。 对于这个问题,不同的浏览器,解决的方法不太一样。 IE的话,通过URLEncoder对filename进行UTF8编码。 而其他的浏览器(firefox、chrome、...
  • IE11下载文件文件名出现乱码

    千次阅读 2017-06-15 14:27:38
    环境:win10教育版+IE11 ...IE下载时中文部分出现乱码,并在IE上下载一个百度PDF文库中的PDF文件,发现并无此现象,于是猜测IE可能处于某种原因没有支持字符编码,于是为文件名设置中文编码格式: System.Web.
  • 解决linux下中文文件名显示乱码问题

    万次阅读 2018-03-06 18:35:39
    在windows上使用ftp上传文件到Linux上,中文名称在Linux系统中显示为乱码。...原因在于,Windows 的文件名中文编码默认为GBK,压缩或者上传后,文件名还会是GBK编码,而Linux中默认文件名编码为UTF8,由于...
  • Http下载文件,文件名中文乱码问题

    千次阅读 2016-12-23 15:40:30
    Content-disposition 中文文件名乱码 firefox中文文件名乱码
  • Firefox 火狐 浏览器下载文件文件名中文乱码解决
  • 在windows上使用ftp上传文件到Linux上,中文名称在Linux系统中显示为乱码,怎么解决呢?今天小编抽空给大家分享CentOS 下中文文件名显示乱码问题的解决方法,需要的的朋友参考下
  • 在linux下面能正常显示中文的文件名,可在win7下文件名就是乱码。 现在win7下IE能现实中文文件名,可在linux下文件名变成了乱码。 而且360浏览器打开的时候发现下载的文件是一个jsp页面。 请问如何解决啊?
  • java自定义下载文件名中文乱码问题

    千次阅读 2018-03-07 10:21:37
    使用java实现文件下载并重命名时出现文件名中文乱码问题时,只需要对请求头的文件名进行utf-8编码即可response.setHeader("Content-disposition","attachment;filename="+ URLEncoder.encode...
  • * 下载--测试 */ @GetMapping("download") public void download(HttpServletResponse response) throws SysInnerException { String outFileName = "下载文件名称(中文).txt"; String filePath = "D:\\...
  • java下载文件时文件名出现乱码的解决办法 2018年01月12日 15:43:32 橙子橙 阅读数:6249 java下载文件时文件名出现乱码的解决办法: String userAgent = request.getHeader("User-Agent"); ...
  • 最正确的文件下载 , 文件名乱码
  • 问题描述: 最近做项目遇到下载附件...3.浏览器根据服务器返回的Header信息创建相应文件,此时文件名并没有出现中文乱码问题 ,到了选择附件下载位置的窗口 ,这时名称回显出现乱码 解决: 对文件名设置编码格式 至此
  • 手机写了socket作为服务器,PC浏览器下载文件,但是浏览器里面的文件名有中文的时候会有乱码。 2 分析 问题1分析 User-Agent: PostmanRuntime/7.26.1 Accept: */* Cache-Control: no-cache ...
  • Java Web工程部署到Tomcat中,下载文件时,中文文件名乱码,JS中和Action都已编码,JS代码如下:(this.innerHTML)">协同备案表(样表)+项目决算表(样表).docx</a>function _download(fileName) { window.location....
  • Safari下载文件名乱码

    万次阅读 2016-08-16 13:01:09
    在使用Safari下载中文名文件的时候,下载文件名乱码, 但在IE,Firefox,Chrome中下载时中文文件名可以正确显示 /** * 浏览器下载文件时需要在服务端给出下载文件名,当文件名是ASCII字符时没有问题当文件名有...
  • PHP下载文件名中文乱码解决方法

    千次阅读 2019-09-26 10:04:28
    通过把Content-Type设置为...那么用Content-Disposition设置下载文件名,这个也有不少人知道吧。基本上,下载程序都是这么写的: <?php $filename = "document.txt"; header('Content-Type: application...
  • Java 解决IE浏览器下载文件,文件名出现乱码问题
  • 下载文件名乱码

    千次阅读 2014-04-23 18:06:59
    文件名乱码问题解决
  • 编程中,php下载文件时,出现文件名中文乱码,火狐、谷歌等浏览器没问题 方法/步骤 1 解决方法很简单,判断下载文件所有浏览器是否是IE浏览器,是的话对文件名进行urlencode()转义编码就可以了 ...
  • 这是个让人很头疼的问题, 明明在后台文件名还是正常的,为什么下载文件名乱码了呢 为什么会乱码:因为浏览器的编码和后台传的编码不一致,这就好比福建人(###)和广东人(***)用方言讲话,结果肯定是谁也听不懂...
  • spring mvc 下载文件 IE浏览器文件名乱码
  • 在项目中发现,使用Safari下载中文名文件的时候,下载文件名乱码的问题。但是这个问题在IE,Firefox,Chrome中是没有的。原先以为是Safari的bug,但是细细研究之下你会发现这个简单的文件下载问题在HTTP协议里...
  • 在IE,FF,chrome中文件名都不会乱码,在其他浏览器中,请参考《不同浏览器上中文文件名下载乱码问题》 jsp: /downloadProFile.action?fileName=${data.app_name }&fileUrl=${data.app_url }">下载 strtus: ...
  • 前提:我们网站所有文件全部使用的是UTF-8 NO BOM的编码方式 1、找测试重现。360浏览器下载的呵呵,果然文件名是乱码。再请测试在ie浏览器下测试。...2、以"PHP ie 下载 文件名乱码"为关键字搜索。果然,ie...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,399
精华内容 28,159
关键字:

文件名下载乱码