qq_14902083 2018-12-07 07:56 采纳率: 0%
浏览 1426

用springmvc实现浏览器下载文件文件时,下载的文件名乱码

今天在做一个浏览器下载文件的功能,文件下载的功能是实现了,但下载的文件
名字出现了中文乱码

下面是代码
``` @RequestMapping(value = "download")
public ResponseEntity export(Long filePath) {

    HzAttachmentRecord hzAttachmentRecord = hzAttachmentRecordDao.selectByPrimaryKey(filePath);


    HttpHeaders headers = new HttpHeaders();
    File file = new File(hzAttachmentRecord.getAttachmentUrl()+"\\"+hzAttachmentRecord.getRealName());
    if(file==null){
        return null;
    }
    try {
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        headers.setContentDispositionFormData("attachment", hzAttachmentRecord.getShowName());
        return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
                headers, HttpStatus.CREATED);
    }catch (Exception e){
        return new ResponseEntity(null,headers,HttpStatus.NOT_FOUND);
    }
}



下面是问题截图
![图片说明](https://img-ask.csdn.net/upload/201812/07/1544169029_180503.jpg)


debug测试了下,attachment对应的值是正确的文件名,应该是传输到前端
时编码格式有点问题


大概情况就是这样,网上找了小半天也没找到解决方法,有没有大佬知道怎么
解决,万分感谢
  • 写回答

1条回答 默认 最新

  • qq_14902083 2018-12-07 07:57
    关注

    已找到解决方法了,

    headers.setContentDispositionFormData("attachment", new String(hzAttachmentRecord.getShowName().getBytes("utf-8"), "ISO8859-1"));
    

    转化下编码格式就好了

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog