Java下载文件时文件名中的中文变成下划线,其他正常
- 问题:
- 问题源码
package com.lm.cms2.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Controller
public class LogController {@RequestMapping("/downloadlog")public HttpServletResponse download( HttpServletResponse response,String path) {try {// path是指欲下载的文件的路径。File file = new File(path);// 取得文件名。String filename = file.getName();// 取得文件的后缀名。String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();// 以流的形式下载文件。InputStream fis = new BufferedInputStream(new FileInputStream(path));byte[] buffer = new byte[fis.available()];fis.read(buffer);fis.close();// 清空responseresponse.reset();// 设置response的Headerresponse.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("utf-8")));response.addHeader("Content-Length", "" + file.length());OutputStream toClient = new BufferedOutputStream(response.getOutputStream());response.setContentType("application/octet-stream");toClient.write(buffer);toClient.flush();toClient.close();} catch (IOException ex) {ex.printStackTrace();}return response;}}
- 解决办法
31行代码后面多家一个编码ISO8859-1
response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"),"ISO8859-1"));
正常显示
OJBK
4. 拓展一下
String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组
String.getBytes(String decode1)方法会根据指定的decode编码返回某字符串在该编码下的byte数组
new String(byte[],decode2)方法是 使用decode2编码来还原byte数组
Java下载文件时文件名中的中文变成下划线,其他正常相关推荐
- Java下载文件时文件名出现乱码(但文件内容正常)
今天写文件下载时,发现以前忽略的问题,写个小记录 我们一般使用中文操作系统,所以要求的 文件名编码最好是utf-8,国际化一点 但是,似乎实际上不是这样 1. String fileName=new ...
- java下载文件时文件名中文乱码
下载文件时中文乱码是一个很常见的问题, 这不是第一次,但我希望它是最后一次了 这是个让人很头疼的问题, 明明在后台文件名还是正常的,为什么下载后文件名就乱码了呢 为什么会乱码:因为浏览器的编码和后台传 ...
- 火狐浏览器下载文件时文件名乱码问题的解决
火狐浏览器在微信网页版或其他网站中下载文件时,存在文件名乱码的问题,搜索了很多解决办法,写的都比较复杂,不适合我这种不懂代码的人.后来发现火狐浏览器附加组件addons上可以搜到解决此问题的组件,就是 ...
- eclipse里建立servlet文件时,package下面有红色下划线
eclipse里建立servlet文件时,package下面有红色下划线 打开eclipse Java EE时经常有如下错误: package下有红下划线,我修改成功的方法是: 右键点击该.Java文 ...
- 教你把文件的文件名中繁体中文翻译成简体中文重命名
文件重命名是我们常遇到的问题,而且一些文件的文件名中有些文字是繁体中文,那么如何将其翻译成简体中文重命名?下面就来试试这个新技巧吧.一起看操作. 准备工具: 一台WIN电脑 文件 开始操作: 在电脑浏 ...
- Linux火狐浏览器下载文件时文件名乱码
火狐下载时文件名会乱码,其他浏览器如360.奇安信.扣扣都是正常的! 本文转自https://blog.csdn.net/tengqingyong/article/details/79943971?u ...
- java下载文件时告警:文件格式和扩展名不匹配 方法
java下载的excel文件,打开时告警: 解决方法是: 1. 创建工作薄的时候,用Workbook workbook = new XSSFWorkbook(); 设置正确的response头信息, ...
- 通过jsp下载文件时文件名及文件内容错误问题
1.文件名乱码问题: 如果是本地window,文件名是 String fileName = new String(fileName.getBytes("utf-8")," ...
- ie浏览器打开aspx文件乱码_ie浏览器下载文件时文件名乱码
做一个文件下载功能时,用ie浏览器下载时文件名乱码,火狐和谷歌正常,修改后ie显示正常,修改方法如下: @RequestMapping(value = "fileDownload" ...
最新文章
- ORACLE 10G以后的ORDER BY操作优化
- 二叉树前序、中序和后序遍历的非递归实现
- bigint hive java类型_详解Apache Hudi如何配置各种类型分区
- 前端学习(730):函数的概念
- Kafka高性能相关
- python3学习笔记(2)_list-tuple
- 郁闷的开始--8月21日
- Mac 上设置文件共享教程
- 计算机考研复试笔试题库,苏州大学计算机考研复试真题和复试参考书目
- 串级PID控制(多闭环PID控制)的理解
- C# WPF如何设置oxyplot的折线图禁止鼠标滚轮缩放
- 《猎头局中局》作者萧东楼访谈摘录
- 只需要一招,改变你的网易云皮肤(仅限于PC端)
- ShaderGraph节点——UV
- 建模神器 | 涨知识,BIM渲染神技能
- 如何设置修改网页中滚动条
- 尚硅谷-宋红康-MySQL高级性能篇
- 行人重识别(21)——行人重识别算法性能指标
- 链克袋鼠Linker创建链克账户教程
- 段永平的第四个徒弟:拼多多黄峥学会了打法,没领悟到本分