java下载文件时文件名发生乱码怎么解决

java下载文件时文件名出现乱码的解决办法:

成都创新互联是一家专注于做网站、网站设计与策划设计,湖里网站建设哪家好?成都创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:湖里等地区。湖里做网站价格咨询:18980820575

    String userAgent = request.getHeader("User-Agent");  
    String formFileName = file.getFileName();  
        
    // 针对IE或者以IE为内核的浏览器:  
    if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {  
        formFileName = java.net.URLEncoder.encode(formFileName, "UTF-8");  
    } else {  
        // 非IE浏览器的处理:  
        formFileName = new String(formFileName.getBytes("UTF-8"), "ISO-8859-1");
    }  
    response.setHeader("Content-disposition",String.format("attachment; filename=\"%s\"", formFileName));  
    response.setContentType("multipart/form-data");   
    response.setCharacterEncoding("UTF-8");

扩展:

乱码指的是程序显示出来的字符文本无法用任何语言去解读。一般情况下会包含大量的?。本质上都是由于字符串原本的编码格式与读取时解析用的编码格式不一致导致的。

中文变成看不懂的字符:如果一串中文字符变成了一串看不懂的字符如:"Ì Ô £ ¡Î Ò Ï²»¶ £ ¡",这种情况通常是编码字符集与解码时所用的字符集不一致所造成的。比如使用GBK编码,如果使用ISO-8859-1解码的话结果就是这样。

一个汉字变成了一个问号:如果编码和解码的字符集都是一致的,那么可以确定该字符编码不支持中文,例如:ISO-8859-1

一个汉字变成了两个问号:中文经过多次编码且其中有一次编码或者解码使用了不支持中文的字符集。

以上就是java中文件下载时文件名乱码的解决方法的详细内容,更多请关注创新互联其它相关文章!


网站栏目:java下载文件时文件名发生乱码怎么解决
文章地址:http://hbruida.cn/article/ghhsis.html