`
ezscript
  • 浏览: 34124 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

下载文件中文名出现乱码 java

    博客分类:
  • java
阅读更多
//--------------------------------------------------------
//1 根据不同浏览器区分解决乱码
//--------------------------------------------------------
String filename= "..."; //文件名
String path = "../../.."; //路径

//获取浏览器类型 :Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 (.NET CLR 3.5.30729)
String agent = request.getHeader("USER-AGENT");  
String downLoadName = null;
if (null != agent && -1 != agent.indexOf("MSIE"))   //IE
{  
  downLoadName = java.net.URLEncoder.encode(filename, "UTF-8"); 
}  
  else if (null != agent && -1 != agent.indexOf("Mozilla")) //Firefox
{      
  downLoadName = new String(filename.getBytes("UTF-8"),"iso-8859-1");   
}  
else   
{
  downLoadName = java.net.URLEncoder.encode(filename, "UTF-8"); 
}  
response.setHeader("Content-disposition", "attachment;filename="
				+ downLoadName );
response.setContentType("application/vnd.ms-excel;charset=UTF-8");

//以下就是文件输出代码了
try {
  FileInputStream fileInputStream = new FileInputStream(path
					+ filename);
  OutputStream out = response.getOutputStream();
  int i = 0;
  while ((i = fileInputStream.read()) != -1) {
    out.write(i);
  }
  fileInputStream.close();
} catch (Exception e) {
  e.printStackTrace();
}

//--------------------------------------------------------
//2 最近看了一下,发现解决乱码不用关心浏览器,可以简单搞定
//--------------------------------------------------------
  String filename= "..."; //文件名
  String path = "../../.."; //路径
  response.setContentType("octets/stream");
  response.addHeader("Content-Type", "text/html; charset=utf-8");
  String downLoadName = new String(filename.getBytes("gbk"), "iso8859-1");
  response.addHeader("Content-Disposition", "attachment;filename="
		+ downLoadName);
//以下加入输出代码就好了

分享到:
评论
2 楼 lzrdjh88 2016-08-10  
1 楼 xiaohanshenchu 2013-09-27  
2 最近看了一下,发现解决乱码不用关心浏览器,可以简单搞定 
我试过了,不好用~~~~

相关推荐

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

    ### Java实现文件下载并解决中文文件名乱码 在日常的Web开发中,经常会遇到需要让用户下载文件的需求,尤其是在企业级应用中。然而,在实际操作过程中可能会遇到一个常见问题:当文件名包含中文字符时,下载后的...

    java压缩zip文件解决中文乱码问题

    总结来说,处理Java中ZIP文件的中文乱码问题,关键在于明确指定字符集,通常是UTF-8,无论是使用Java内置的API还是第三方库。同时,理解文件系统的编码和压缩/解压过程中的字符编码转换也非常重要。通过这种方式,...

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

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

    java 解析csv文件例子,csv文件 中文乱码问题

    本篇文章将详细探讨如何在Java中解析CSV文件,并解决中文乱码的问题。 首先,我们需要了解如何使用Java的标准库`java.io`和`java.nio`来读取CSV文件。最常用的是使用`BufferedReader`配合`Scanner`或者`Files.lines...

    flex 文件上传 预览下载 及中文名乱码解决问题

    解决中文名乱码问题的关键在于确保数据传输的全过程都使用相同的字符编码,包括客户端的发送、服务器的接收以及响应。在Flex端,可以使用`flash.net.URLRequestHeader`设置请求头的`charset`属性,而在服务器端,如...

    解决java压缩zip文件时的中文乱码问题(包含jar包和工具类)

    解决java压缩zip文件时的中文乱码问题 实现:java压缩文件成zip实现无乱码。 包括:写好的工具类与jar包。 使用方法:导入ant.jar包,调用CompressExcelOperate中的方法,即可实现压缩文件,并保证没有中文乱码...

    多文件上传例子(解决中文乱码)

    多文件上传例子,彻底解决中文乱码问题了。总结中文乱码问题如下: 1、所有页面都用UTF-8。 2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 3、javascript脚本里用encodeURI(str)。 4、适当的时候,在...

    解决不同浏览器下载时中文名乱码问题

    ### 解决不同浏览器下载时中文名乱码问题 在Web开发过程中,经常遇到的一个问题是当用户尝试下载包含中文字符的文件名时,会出现乱码的情况。这是因为不同的浏览器处理文件名编码的方式有所不同,导致服务器端设置...

    java读取文件中文乱码

    在Java编程中,读取包含中文字符的...通过理解和应用这些知识点,你可以有效地解决Java读取文件时出现的中文乱码问题。在实际开发中,对文件编码的理解和处理是至关重要的,能够确保程序正确地处理各种语言和字符集。

    [Java]PDF转图片解决中文乱码.zip

    总之,这个名为"PDF2img"的DEMO利用PDFBox库解决了在Java环境中PDF转图片时中文乱码的问题,对于需要处理大量中文PDF文档的开发者来说,这是一个非常实用的工具。通过深入理解和使用PDFBox,我们可以构建更复杂的...

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

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

    java 压缩目录中的所有文件 中文文件名不会乱码

    java 压缩目录中的所有文件 中文文件名不会乱码

    java下载时文件名乱码

    在Java编程中,遇到“java下载时文件名乱码”的问题通常是由于编码不一致或处理不当造成的。在处理文件下载时,尤其是从Web服务器下载带有非ASCII字符的文件名时,这种问题尤为常见。让我们深入探讨这个问题,并提供...

    fckeditor(java版-解决中文附件名称乱码问题)

    在Java中,默认的编码是UTF-8,但有些系统或服务可能使用其他编码,这可能导致中文字符在传输过程中出现乱码。 2. **FCKeditor配置**:FCKeditor的配置文件中,可能存在对字符编码的设定。例如,上传设置可能需要...

    解压文件时中文乱码

    在处理压缩文件,如ZIP或RAR格式时,中文文件名可能会出现乱码问题,这通常是由于编码不兼容或缺少正确设置编码导致的。中文字符在不同的操作系统或软件中可能使用不同的编码方式,如GBK、UTF-8等,不匹配就会产生...

    Linux中java log输出中文乱码.docx

    Linux 中 Java log 输出中文乱码解决方案 Linux 中 Java log 输出中文乱码问题是 Java 应用程序在 Linux 环境下一个常见的问题。该问题的产生是由于 Linux 系统的 locale 设置不正确导致的。locale 是 Linux 系统中...

    java android zip解压缩(解决压缩中文乱码问题)

    本篇文章将深入探讨如何在Android平台上解决Java ZIP库在解压缩中文文件时出现的乱码问题。 首先,我们要明白乱码问题的根源。在文件的压缩和解压缩过程中,文件名通常被编码为字节序列,这个序列取决于原始文件名...

    EL中文显示乱码的解决办法

    在使用EL(Expression Language)表达式处理中文字符时,可能会遇到中文显示乱码的问题,这通常是由于字符编码不一致导致的。以下是一些详细的解决步骤和相关知识点: 1. **理解字符编码**: - 字符编码是用来表示...

    不同浏览器上中文文件名的下载乱码问题

    不同浏览器上中文文件名的下载乱码问题 浏览器IEChromeSafariOpera 浏览器能正确识别的编码格式

    Java中FTPClient上传中文目录、中文文件名乱码问题解决方法

    在Java编程中,使用FTPClient进行文件传输时,可能会遇到一个常见的问题,即当尝试创建中文目录或上传具有中文名称的文件时,这些目录名和文件名会显示为乱码,通常表现为“??”这样的形式。这个问题主要是由于FTP...

Global site tag (gtag.js) - Google Analytics