java文件下载以及中文乱码解决

Posted 羽哲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java文件下载以及中文乱码解决相关的知识,希望对你有一定的参考价值。

  在客户端下载文件时替换下载文件的名称,但是当名称是中文时浏览器会出现乱码,解决代码如下:

    public org.springframework.http.ResponseEntity<InputStreamResource> handleExcel(HttpServletRequest request) throws Exception {
        String fileName = "模板下载.xsls";
            //解决浏览器下载汉字乱码的兼容问题
            String userAgent = request.getHeader("User-Agent");
            byte[] bytes = userAgent.contains("MSIE") ? fileName.getBytes() : fileName.getBytes("UTF-8");
            // 各浏览器基本都支持ISO编码
            String name = new String(bytes, "ISO-8859-1");
             //网络资源文件
             //可以替换为网络资源文件
             //本地文件
            PathResource file = new     PathResource(FileUtil.getNewFileName(fileName));
            HttpHeaders headers = new HttpHeaders();
            headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
            headers.add("Content-Disposition", "attachment;fileName=" + name);
            headers.add("Pragma", "no-cache");
            headers.add("Expires", "0");
            org.springframework.http.ResponseEntity<InputStreamResource> entity = org.springframework.http.ResponseEntity
                    .ok()
                    .headers(headers)
                    .contentLength(file.contentLength())
                    .contentType(MediaType.parseMediaType("application/octet-stream"))
                    .body(new InputStreamResource(file.getInputStream()));
            return entity;
}                    

  

以上是关于java文件下载以及中文乱码解决的主要内容,如果未能解决你的问题,请参考以下文章

第一个java程序中文乱码以及如何解决

命令行的乱码以及编码的问题的解决方法

java数据库中文乱码怎么解决

QT5常见问题二:程序显示中文乱码以及Linguist打开翻译文件乱码,该如何解决?

Java:常见中文乱码问题以及解决方案

Java中文乱码&特殊字符解决方案