火狐,谷歌,edge,IE浏览器中文乱码和空格变+号解决方法

        // 清空response
        response.reset();
        // 获取浏览器信息
        String userAgent = request.getHeader("User-Agent");
        if (userAgent != null && userAgent.toLowerCase().indexOf("firefox") > 0) {// 火狐下载文件1编码
            fileName = new String(fileName.getBytes("gbk"), "iso8859-1");
            // 设置response的Header
            response.addHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
        } else {// 谷歌,edge下载文件编码
            fileName = Encodes.urlEncode(fileName);
            fileName = fileName.replaceAll("\\+", "%20");//处理空格变+号
            // 设置response的Header
            response.addHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
        }
        response.addHeader("Content-Length", String.valueOf(file.length()));
        response.setContentType("application/octet-stream; charset=utf-8");

        页面解码:encodeURI(fileName);

        有用记得点个评论赞哦!!!

你可能感兴趣的:(火狐,谷歌,edge,IE浏览器中文乱码和空格变+号解决方法)