`

java文件导出文件名乱码问题解决

    博客分类:
  • java
 
阅读更多
在编写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导出文件名处理详解 在Java Web开发过程中,经常需要实现文件的导出功能。这涉及到将数据从服务器端导出为特定格式的文件(如Excel、PDF等),并提供给用户下载。在这个过程中,正确处理文件名是非常重要的...

    Java实现文件下载并解决中文文件名乱码

    本文将详细介绍如何使用Java实现文件下载功能,并重点讲解如何解决中文文件名乱码的问题。 #### 一、基本原理与步骤 1. **读取文件**:首先需要将要下载的文件读取到内存中。 2. **设置响应头**:为了正确地告知...

    jsch-0.1.53 使用sftp协议上传下载文件名中文乱码解决办法

    jsch-0.1.53 不支持修改编码格式,sftp.setFilenameEncoding("GBK");这样修改是不起作用的,所以必须修改源码。此处是修改源码后重新导出的jar包。

    Java生成pdf文件,解决中文乱码问题.pdf

    Java 生成 PDF 文件,解决中文乱码问题 Java 生成 PDF 文件,解决中文乱码问题是 Java 编程中常见的问题。解决这个问题的关键是正确地设置中文字体,以避免乱码问题。本文将通过一个完整的示例代码,详细讲解如何...

    jsch文件名中文乱码解决办法

    感谢你的下载,文件说明如下: *jsch的源文件 *jsch的依赖包 *用jsch源文件及依赖包构建的项目,便于修改其源码* ...如果乱码问题依然没解决,这个类也许能帮你找到你需要更改的编码类型。然后修改那三处地方。

    解决Java原生压缩组件不支持中文文件名乱码的问题

    解决Java原生压缩组件不支持中文文件名乱码的问题 Java原生压缩组件不支持中文文件名乱码的问题是一种常见的问题, especialmente when dealing with file names that contain Chinese characters. 在Java中,Zip...

    读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(还是以支付宝对账单为例)

    为了解决乱码问题,我们需要确保在读取文件内容时使用正确的字符编码。在Python中,这可以通过指定`decode()`函数的编码参数来实现,如`content = content.decode('utf-8')`。在Java中,可以使用`new String(data, ...

    java导出excel文件并且下载到客户端(包括解决中文乱码).txt

    ### Java导出Excel文件并下载到客户端(含解决中文乱码问题) 在现代的企业级应用开发中,数据导出功能是非常常见的一种需求。特别是在B/S架构的应用中,用户经常需要将查询结果导出为Excel文件以便进行后续的数据...

    birt 修改导出的文件名

    通常,修改导出文件名涉及到以下几个步骤: 1. **扩展ExportWriter**: BIRT的导出过程是由ExportWriter类处理的,我们需要创建一个自定义的ExportWriter子类,覆盖其中的方法以改变默认的文件命名逻辑。 2. **...

    sftp解决上传中文文件乱码 jsch-0.1.54.jar

    sftp解决上传中文乱码,sftp.setFilenameEncoding("GBK");修改是不起作用的,修改源码后重新导出的jar包。

    数据导出EXCEL 解决中文名乱码 同时赠由二进制转换成文件(解决中文名乱码)

    本篇文章将详细探讨如何解决在数据导出到Excel时出现的中文乱码问题,并介绍如何通过二进制转换来正确保存和处理含有中文字符的文件。 首先,我们需要理解为什么会出现中文乱码。这通常是由于编码不一致导致的。在...

    Java导出txt文件的方法

    以下将详细介绍两种Java导出txt文件的方法,并提供相关的使用技巧。 方法一: 在这个示例中,代码创建了一个HTTP响应,用于导出一个包含视频列表的txt文件。首先,通过SQL查询获取了视频列表数据。然后,设置HTTP...

    Serv-U 8.0 服务器中文乱码问题的解决

     2、在FTP设置中找到OPTS UTF8命令,右击禁用此命令。... 4、在出来的FTP命令属性选项卡... 您可能感兴趣的文章:php中json_encode UTF-8中文乱码的更好解决方法java中form以post、get方式提交数据中文乱码问题总结pyth

    快速解决mysql导出scv文件乱码、蹿行的问题

    在IT行业中,数据库管理和数据迁移是常见的任务,...通过上述方法,可以有效地解决MySQL导出CSV文件时的乱码和蹿行问题,同时确保数据导入导出过程的顺利进行。在实际工作中,了解并掌握这些技巧将极大地提高工作效率。

    word__xls文件导出

    - 在设置响应头之前,应确保所有输出流已被关闭,避免出现乱码问题。 - 对于包含中文的文件名,必须使用正确的字符编码(如UTF-8),否则可能导致文件名显示错误。 - 应考虑到不同浏览器对响应头的不同解析规则,...

    jsp导出excel一般问题及汇总

    1. **乱码问题**:在导出Excel时,文件名或内容可能出现乱码。解决方法是确保设置正确的字符编码,例如设置`response.setCharacterEncoding("UTF-8")`,并指定文件名的编码,如`response.setHeader("Content-...

    React获取Java后台文件流并下载Excel文件流程解析

    React获取Java后台文件流并下载Excel文件流程解析 React获取Java后台文件流并下载Excel文件流程解析是指在React前端应用程序中,通过axios库发送POST请求到Java后台服务器,以获取Excel文件流,并将其下载到本地...

    上传与下载

    当我们处理文件上传下载时,可能会遇到一些问题,如文件名乱码等。以下是对这些知识点的详细解释: 1. **文件上传下载基础**: - 文件上传:在Web应用中,用户通过表单提交文件到服务器的过程称为文件上传。通常,...

    servlet导出文件

    6. **字符编码**:在处理文件内容时,注意字符编码的设置,避免乱码问题。 7. **Apache POI**:如果涉及到Excel文件的导出,Apache POI是一个强大的库,可以用来创建和修改MS Office文件,包括XLS和XLSX格式。 8. ...

    javascript使用Blob对象实现的下载文件操作示例

    在本文的示例中,使用Blob对象下载文件,特别是在以POST请求方式导出Excel时非常有用。通常,后端会返回一个包含文件内容的输出流,这些内容可能是ArrayBuffer或Blob格式。前端接收到数据后,可以通过Blob对象对这些...

Global site tag (gtag.js) - Google Analytics