`
neora
  • 浏览: 183817 次
  • 性别: Icon_minigender_1
  • 来自: 墨尔本
文章分类
社区版块
存档分类
最新评论

解决附件下载中文名问题(Tomcat)

阅读更多
response.setContentType("application/octet-stream");
if (isIE) {
	// 1、IE不支持filename的RFC2047编码,你只有用GBK输出,才能让你的IE正常显示中文
	// 2、你可以用URL.encode来对filename编码,这样你用IE下载时打开的文件名是正常的,
	//  这种办法无法解决你选择直接打开附件而不是“保存”时,应用程序标题栏的乱码问题。
	// 3、缺省情况下,tomcat以ISO-8859-1输出header 
	name = new String(name.getBytes("GBK"), "ISO-8859-1");
}else{
	// 对于非IE的agent,采用RFC2047编码,这样浏览器可以自动识别文件名字符集
	name = "=?UTF-8?B?" + new String(Base64.encode(name.getBytes("UTF-8")))  + "?=";
}
response.addHeader("Content-Disposition", "attachment; filename=\""  + name + "\"");

 
分享到:
评论
2 楼 sdtzyb 2009-06-01  
< a  href="我的文件.zip">我的文件</a>
怎么弄呀!
1 楼 robbin 2008-12-05  
有些中文文件名经过base64编码之后,字符串中间可能含有换行符,所以最保险的做法:

"=?UTF-8?B?#{Base64.encode64(filename).gsub!(/\n| /, "")}?="


编码之后进行一次替换。

相关推荐

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

    通过以上知识点的深入理解和应用,可以有效地解决“fckeditor(java版-解决中文附件名称乱码问题)”这个问题,确保用户能够正常上传并保存带有中文名称的附件,从而提高产品在中文环境下的可用性和用户体验。

    java下载时文件名乱码

    让我们深入探讨这个问题,并提供解决策略。 首先,我们需要了解HTTP协议中的编码规则。在HTTP响应头中,有一个名为`Content-Disposition`的字段,用于指定附件的文件名。当文件名包含非英文字符时,需要进行编码,...

    xplanner 汉化直接运行版

    不仅如此,开发者还修复了中文附件问题,这意味着在上传和管理带有中文名称的文件时,系统能够正常识别和处理,避免了因为字符编码问题导致的错误。 "直接运行"是这个版本的一大亮点。通常情况下,部署开源软件需要...

    Java邮件开发详解-张孝祥 ppt

    此外,还涵盖了处理中文名附件乱码、Tomcat中JavaMail支持及可能的冲突问题,以及如何开发SMTP邮件服务器等高级应用。 学习邮件开发主要包括两个核心部分:一是发送与接收邮件,二是创建与解析邮件内容。邮件的发送...

    JavaMail开发原理简介PPT

    邮件开发过程中会遇到一些常见问题,比如中文附件的乱码问题、Tomcat中JavaMail的支持与冲突,以及如何实现有效的邮件群发。这些问题需要开发者深入理解邮件协议和JavaMail的使用方式来解决。 邮件服务的核心是邮件...

    spagobi.zip 02

    这个标题表明我们正在处理一个名为"spagobi.zip 02"的压缩文件,它是"spagobi"的某个版本或更新。"02"可能是版本号或者表示这是第二次修改,暗示之前可能有一个"spagobi.zip 01"。 **描述:“spagobi改造后的所有...

    邮件的收发.pptx

    - **中文名的邮件附近乱码问题**:确保使用正确的字符集编码(如UTF-8)来避免乱码问题。 - **Tomcat中JavaMail支持与冲突问题**:配置合适的库版本,解决兼容性问题。 - **SMTP邮件服务器程序的开发**:涉及邮件...

    传智播客张孝祥Java邮件开发学习笔记

    8. 中文附件名、回信地址和友好名称等技巧 邮件在不同的环境下,比如跨域、跨平台时,可能会遇到中文乱码的问题,因此需要掌握相应的编码技巧以确保邮件内容在不同系统中正确显示。同时,了解如何处理邮件的回信地址...

    单点登录源码

    - 一站式支付解决方案,统一下单接口,支持支付宝、微信、网银等多种支付方式。不涉及业务的纯粹的支付平台。 - 统一下单(统一下单接口、统一扫码)、订单管理、数据分析、财务报表、商户管理、渠道管理、对账系统...

    JAVA上百实例源码以及开源项目源代码

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!...

Global site tag (gtag.js) - Google Analytics