在编写excel文件导出程序的时候遇到一个奇怪的问题,就是在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,如何解决
httpServletResponse.setContentType("application/vnd.ms-excel");
Util.setFileDownloadHeader(httpServletRequest,httpServletResponse,"用户列表.xls");
setFileDownloadHeader函数主要是根据当前用户的浏览器不同,对文件的名字进行不同的编码设置,从而解决不同浏览器下文件名中文乱码问题
public static void setFileDownloadHeader(HttpServletRequest request, HttpServletResponse response, String fileName) {
final String userAgent = request.getHeader("USER-AGENT");
try {
String finalFileName = null;
if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
finalFileName = URLEncoder.encode(fileName,"UTF8");
}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
finalFileName = new String(fileName.getBytes(), "ISO8859-1");
}else{
finalFileName = URLEncoder.encode(fileName,"UTF8");//其他浏览器
}
response.setHeader("Content-Disposition", "attachment; filename=\"" + finalFileName + "\"");//这里设置一下让浏览器弹出下载提示框,而不是直接在浏览器中打开
} catch (UnsupportedEncodingException e) {
}
}
分享到:
相关推荐
### Java导出文件名处理详解 在Java Web开发过程中,经常需要实现文件的导出功能。这涉及到将数据从服务器端导出为特定格式的文件(如Excel、PDF等),并提供给用户下载。在这个过程中,正确处理文件名是非常重要的...
本文将详细介绍如何使用Java实现文件下载功能,并重点讲解如何解决中文文件名乱码的问题。 #### 一、基本原理与步骤 1. **读取文件**:首先需要将要下载的文件读取到内存中。 2. **设置响应头**:为了正确地告知...
jsch-0.1.53 不支持修改编码格式,sftp.setFilenameEncoding("GBK");这样修改是不起作用的,所以必须修改源码。此处是修改源码后重新导出的jar包。
Java 生成 PDF 文件,解决中文乱码问题 Java 生成 PDF 文件,解决中文乱码问题是 Java 编程中常见的问题。解决这个问题的关键是正确地设置中文字体,以避免乱码问题。本文将通过一个完整的示例代码,详细讲解如何...
感谢你的下载,文件说明如下: *jsch的源文件 *jsch的依赖包 *用jsch源文件及依赖包构建的项目,便于修改其源码* ...如果乱码问题依然没解决,这个类也许能帮你找到你需要更改的编码类型。然后修改那三处地方。
解决Java原生压缩组件不支持中文文件名乱码的问题 Java原生压缩组件不支持中文文件名乱码的问题是一种常见的问题, especialmente when dealing with file names that contain Chinese characters. 在Java中,Zip...
为了解决乱码问题,我们需要确保在读取文件内容时使用正确的字符编码。在Python中,这可以通过指定`decode()`函数的编码参数来实现,如`content = content.decode('utf-8')`。在Java中,可以使用`new String(data, ...
### Java导出Excel文件并下载到客户端(含解决中文乱码问题) 在现代的企业级应用开发中,数据导出功能是非常常见的一种需求。特别是在B/S架构的应用中,用户经常需要将查询结果导出为Excel文件以便进行后续的数据...
通常,修改导出文件名涉及到以下几个步骤: 1. **扩展ExportWriter**: BIRT的导出过程是由ExportWriter类处理的,我们需要创建一个自定义的ExportWriter子类,覆盖其中的方法以改变默认的文件命名逻辑。 2. **...
sftp解决上传中文乱码,sftp.setFilenameEncoding("GBK");修改是不起作用的,修改源码后重新导出的jar包。
本篇文章将详细探讨如何解决在数据导出到Excel时出现的中文乱码问题,并介绍如何通过二进制转换来正确保存和处理含有中文字符的文件。 首先,我们需要理解为什么会出现中文乱码。这通常是由于编码不一致导致的。在...
以下将详细介绍两种Java导出txt文件的方法,并提供相关的使用技巧。 方法一: 在这个示例中,代码创建了一个HTTP响应,用于导出一个包含视频列表的txt文件。首先,通过SQL查询获取了视频列表数据。然后,设置HTTP...
2、在FTP设置中找到OPTS UTF8命令,右击禁用此命令。... 4、在出来的FTP命令属性选项卡... 您可能感兴趣的文章:php中json_encode UTF-8中文乱码的更好解决方法java中form以post、get方式提交数据中文乱码问题总结pyth
在IT行业中,数据库管理和数据迁移是常见的任务,...通过上述方法,可以有效地解决MySQL导出CSV文件时的乱码和蹿行问题,同时确保数据导入导出过程的顺利进行。在实际工作中,了解并掌握这些技巧将极大地提高工作效率。
- 在设置响应头之前,应确保所有输出流已被关闭,避免出现乱码问题。 - 对于包含中文的文件名,必须使用正确的字符编码(如UTF-8),否则可能导致文件名显示错误。 - 应考虑到不同浏览器对响应头的不同解析规则,...
1. **乱码问题**:在导出Excel时,文件名或内容可能出现乱码。解决方法是确保设置正确的字符编码,例如设置`response.setCharacterEncoding("UTF-8")`,并指定文件名的编码,如`response.setHeader("Content-...
React获取Java后台文件流并下载Excel文件流程解析 React获取Java后台文件流并下载Excel文件流程解析是指在React前端应用程序中,通过axios库发送POST请求到Java后台服务器,以获取Excel文件流,并将其下载到本地...
当我们处理文件上传下载时,可能会遇到一些问题,如文件名乱码等。以下是对这些知识点的详细解释: 1. **文件上传下载基础**: - 文件上传:在Web应用中,用户通过表单提交文件到服务器的过程称为文件上传。通常,...
6. **字符编码**:在处理文件内容时,注意字符编码的设置,避免乱码问题。 7. **Apache POI**:如果涉及到Excel文件的导出,Apache POI是一个强大的库,可以用来创建和修改MS Office文件,包括XLS和XLSX格式。 8. ...
在本文的示例中,使用Blob对象下载文件,特别是在以POST请求方式导出Excel时非常有用。通常,后端会返回一个包含文件内容的输出流,这些内容可能是ArrayBuffer或Blob格式。前端接收到数据后,可以通过Blob对象对这些...