- 浏览: 544897 次
- 性别:
- 来自: 湖南娄底
文章分类
- 全部博客 (252)
- C#资料 (0)
- java资料 (22)
- 数据库资料 (0)
- Java :开发中遇到的问题 (4)
- 书写属于我的人生 (6)
- spring (6)
- hibernate (16)
- struts (17)
- SSH (5)
- Linux操作系统 (1)
- Ext (5)
- Jquery (9)
- Tomcat部署出错 (2)
- xml (5)
- JSON (5)
- javascript 专题 (5)
- 开发环境配置 (2)
- web 开发 (27)
- Eclipse (7)
- Integration (1)
- 解决方案搜罗 (7)
- 网站收藏 (8)
- 测试框架 (1)
- iframe 专题 (6)
- JSTL (2)
- 各种插件收集 (2)
- 权限设计模型探讨 (1)
- DWR (1)
- log4j (3)
- java (11)
- java 格式化 (1)
- 软件工程 (2)
- 乱码专题 (1)
- UML (4)
- java 设计模式 篇 (1)
- 用法收集 (0)
- sourceforge apache solutions (2)
- Struts2 + JPA + Spring 开发 (1)
- 自定义工具箱 (0)
- IDE (4)
- opencms (1)
- jeecms (1)
- ant (0)
- maven (2)
- 数据库连接池 (0)
- spring MVC (0)
- android (1)
- web-server (1)
- iphone-开发环境 (1)
- iphone-软件开发 (6)
- iPhone-软件设计 (1)
- iphone-应用 (3)
- iPhone-设置 (2)
- iphone-软件开发-设计模式篇 (0)
- iphone-软件开发-OC基础 (9)
- iphone-软件开发- UI篇 (9)
- iphone-软件开发-工具类篇 (1)
- iphone-软件开发-第三方篇 (0)
- iphone-软件开发-特效篇 (2)
- iphone-软件开发-动画篇 (1)
- oracle (1)
- Java-Security (0)
- Three20 UI (1)
- IOS-HOW-TO-专题 (1)
- Mark-Develope Issues (1)
- iphone-软件开发- 资料参考篇 (1)
- C 语言-基本语法 (0)
- Java Servlet (2)
- Eclipse optimization (1)
- IOS Basic (0)
- ecl (0)
- FRONT-HTML (0)
- FRONT-JS (0)
- PHP (0)
最新评论
-
qq_29862421:
[[color=brown]color=yellow][url ...
java 上传图片同时获得图片的宽和高 -
hhb19900618:
NSString <==> NSNumber 之前 ...
OC 常用数据类型之间的转换 -
baohuan_love:
果然能解决问题,感谢分享
Tomcat Error Page配置 与 Error Page在IE下不能转发的问题 -
唐丽梅6313:
很细致。。
键盘样式风格有关设置-iOS开发 -
olived:
哥哥,为什么我的没有破解成功,总是提示许可文件丢失!!QQ:3 ...
[软件测试解决方案] soapUI 4.0.1破解方法
目前,我们的U盘和Mail中对含有中文文件名的下载处理都不是太好
在某些浏览器下,下载显示的文件名是乱码
我又顺便看了一下其他各邮箱和网盘的处理,只有QQ处理的比较好
现在时基本上每个浏览器都能正常显示中文的文件名
花了一些时间对IE,Firefox,Opera,Chrome,Safari这几个浏览器进行了测试
总结了一下,各浏览器能正确识别的编码格式,只要按照这样的编码来设置对应的Content-Disposition
那么应该就不会出现中文文件名的乱码问题了
首先,Content-Disposition值可以有以下几种编码格式
1. 直接urlencode:
Content-Disposition: attachment; filename="struts2.0%E4%B8%AD%E6%96%87%E6%95%99%E7%A8%8B.chm"
2. Base64编码:
Content-Disposition: attachment; filename="=?UTF8?B?c3RydXRzMi4w5Lit5paH5pWZ56iLLmNobQ==?="
3. RFC2231 规定的标准:
Content-Disposition: attachment; filename*=UTF-8''%E5%9B%9E%E6%89%A7.msg
4. 直接ISO编码的文件名:
Content-Disposition: attachment;filename="测试.txt"
然后,各浏览器支持的对应编码格式为:
1. IE浏览器,采用URLEncoder编码
2. Opera浏览器,采用filename*方式
3. Safari浏览器,采用ISO编码的中文输出
4. Chrome浏览器,采用Base64编码或ISO编码的中文输出
5. FireFox浏览器,采用Base64或filename*或ISO编码的中文输出
对应的Java代码如下:
折叠
复制代码
- new_filename = URLEncoder.encode(filename, "UTF8" );
- // 如果没有UA,则默认使用IE的方式进行编码,因为毕竟IE还是占多数的
- rtn = "filename="" + new_filename + """ ;
- if (userAgent != null )
- {
- userAgent = userAgent.toLowerCase();
- // IE浏览器,只能采用URLEncoder编码
- if (userAgent.indexOf( "msie" ) != - 1 )
- {
- rtn = "filename="" + new_filename + """ ;
- }
- // Opera浏览器只能采用filename*
- else if (userAgent.indexOf( "opera" ) != - 1 )
- {
- rtn = "filename*=UTF-8''" + new_filename;
- }
- // Safari浏览器,只能采用ISO编码的中文输出
- else if (userAgent.indexOf( "safari" ) != - 1 )
- {
- rtn = "filename="" + new String(filename.getBytes( "UTF-8" ), "ISO8859-1" ) + """ ;
- }
- // Chrome浏览器,只能采用MimeUtility编码或ISO编码的中文输出
- else if (userAgent.indexOf( "applewebkit" ) != - 1 )
- {
- new_filename = MimeUtility.encodeText(filename, "UTF8" , "B" );
- rtn = "filename="" + new_filename + """ ;
- }
- // FireFox浏览器,可以使用MimeUtility或filename*或ISO编码的中文输出
-
else
if
(u
serAgent.indexOf( "mozilla" ) != - 1 ) - {
- rtn = "filename*=UTF-8''" + new_filename;
- }
- }
目前,我测试的情况,在几个浏览器上都能正常输入中文文件名
但,也许浏览器不同版本,可能还会有乱码的情况…..
发表评论
-
Installing Tomcat on Mac OS X
2013-02-28 16:15 1081To get Tomcat, visit the follo ... -
How to iterate HashMap using JSTL forEach loop
2012-10-05 18:47 0JavaServer Tag library is one o ... -
URL重写技术urlrewrite
2012-09-21 11:27 0需要一个urlrewritefilter的包,这个包是个开 ... -
Session 和 Cookie 以及 URL重写那些事
2012-09-17 23:05 0Cookies 是服务器在本地机器上存储的小段文本并随每一个 ... -
swfupload 解决方案
2012-06-12 16:56 0据说是完美解决方案: http://blog.csdn.ne ... -
前端开发工具箱 (js & css 代码压缩、优化
2012-02-25 09:59 0前端开发工具箱 (js & css 代码压缩、优化) ... -
servlet tomcat web.xml配置信息说明
2012-02-17 10:42 1464过滤器: 1.类型配置1[解决请求期间,数据库sess ... -
数据库连接池技术的总结
2012-02-14 11:51 01.Proxool的数据库连接池配置信息: <prox ... -
http协议那点事!
2012-02-13 21:52 1022作为一个开发者,尤其 ... -
运用proxool连接池
2012-01-10 10:19 1016最近做的一个项目中运用到了连接池技术,可能我们大家比较熟悉的 ... -
兼容 ie,ff,Google,safari,opera 的回车事件
2012-01-09 16:56 1058http://oraclestudy.iteye.com/bl ... -
js 中eval和execScript
2012-01-09 16:55 1594http://blog.csdn.net/on_load_19 ... -
Tomcat Error Page配置 与 Error Page在IE下不能转发的问题
2012-01-09 13:46 3266Tomcat Error Page配 ... -
网页背景音乐使用方法
2011-11-22 12:25 1012一、学会添加音乐文 ... -
Java Pet Store 2.0 应用程序简介
2011-11-14 17:48 3606http://developers.sun.com.cn/Ja ... -
在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)
2011-11-14 12:23 1266在服务器端判断request 来自Ajax请求(异步)还 ... -
Java Pet Store 2.0 应用程序简介
2011-11-14 09:08 902使用 Ajax 创建用于无缝数据交互的 Web 2.0 ... -
部署war文件到Apache Tomcat服务器
2011-11-17 14:45 5221下面我将描述正确的部署.war(web application ... -
网站开发 html控件和css篇
2011-11-13 18:32 9391.文本框; <input id="word ... -
关于Session生命周期的问题
2011-11-13 01:35 1639以下情况,Session结束生命周期,Servlet容器将Se ...
相关推荐
不同浏览器上中文文件名的下载乱码问题 浏览器IEChromeSafariOpera 浏览器能正确识别的编码格式
首先,我们需要理解问题的核心:浏览器在请求服务器上的资源,特别是文件时,如果文件名包含中文字符,可能会因为编码不一致导致乱码。这主要涉及到字符编码的两个关键概念——Unicode和字符编码转换。 1. **...
### 解决不同浏览器下载时中文名乱码问题 在Web开发过程中,经常遇到的一个问题是当用户尝试下载包含中文字符的文件名时,会出现乱码的情况。这是因为不同的浏览器处理文件名编码的方式有所不同,导致服务器端设置...
本文将深入探讨如何在ASP.NET中解决下载文件名乱码的问题,通过分析代码示例,提供实用的解决方案。 ### 理解文件名乱码的原因 文件名乱码主要是由于编码格式不一致导致的。当服务器端和客户端对同一字符串的编码...
本文将详细介绍如何使用Java实现文件下载功能,并重点讲解如何解决中文文件名乱码的问题。 #### 一、基本原理与步骤 1. **读取文件**:首先需要将要下载的文件读取到内存中。 2. **设置响应头**:为了正确地告知...
总的来说,解决中文文件名乱码问题需要从多个角度考虑,包括服务器配置、HTTP头部设置、编码转换以及选择合适的工具。了解并掌握这些知识点,有助于我们在实际工作中更顺畅地处理各种语言环境下的文件下载问题。对于...
本文用 C# 代码解决了在目前四种流行浏览器中Asp.net 输出文件流时文件名的空格及中文字符乱码这两个问题。使用本文的代码,你将可以让 IE(Internet Explorer)、Opera、Firefox 及 Chrome 的用户享受到没有乱码且...
本文将深入解析如何在JSP中实现文件下载,并解决中文文件名乱码的问题。 首先,我们需要了解HTTP协议在处理文件下载时的角色。当用户请求下载一个文件时,服务器需要设置响应头来指示浏览器如何处理这个响应。在JSP...
往往开发环境和生产环境在环境部署时会遇到很多奇怪的问题,此次word文档下载就被卡住了,通过一番努力终于找到了原因,分享给大家。上传文件txt格式,内有方法详细的代码注释及原因说明,jar包比较常见,大家自行...
总之,解决JSmartCom的中文文件名乱码问题,不仅需要深入理解JavaScript和HTTP的字符编码机制,还需要对JSmartCom的源码有充分的认识,以便定位和修改关键代码。通过以上所述的步骤和方法,你应该能够成功地克服这个...
在使用上述方法解决中文文件名乱码问题时,还需要考虑浏览器兼容性,确保在不同的浏览器上都能正确显示文件名。 总结来说,通过设置正确的Content-Disposition响应头,并将文件名进行UTF-8编码,可以有效解决Web...
通过上述代码,我们可以解决 Java 文件下载文件名乱码问题,但需要注意的是,在不同的浏览器中,乱码问题的解决方法可能不同。例如,在 IE 浏览器中,需要使用 URLEncoder 对文件名进行编码,而在非 IE 浏览器中,...
在IT领域,特别是Web开发中,处理文件下载时遇到文件名乱码问题是一个常见的挑战,尤其是在不同的服务器环境下,如WeLogic与Tomcat之间的差异。本文将深入探讨在WeLogic服务器中使用Struts2框架进行文件下载时遇到的...
在IT领域,尤其是在Web开发中,处理文件下载和解决中文文件名乱码问题是常见的需求之一。本文将深入探讨如何通过二进制流转换为文件来实现文件下载,并着重讲解如何解决中文文件名出现的乱码问题。 ### 文件下载...
在Java编程中,遇到“java下载时文件名乱码”的问题通常是由于编码不一致或处理不当造成的。在处理文件下载时,尤其是从Web服务器下载带有非ASCII字符的文件名时,这种问题尤为常见。让我们深入探讨这个问题,并提供...
总的来说,解决浏览器文件名乱码问题的关键在于识别用户使用的浏览器类型,并根据其特性进行适当的文件名编码处理。通过这种方式,我们能够确保无论用户使用何种浏览器,都能正确下载并显示文件名。当然,这种方法并...
在PHP编程中,当涉及到跨浏览器的文件下载时,可能会遇到中文文件名显示为乱码的问题。这个问题主要是由于不同浏览器对文件名编码处理方式的差异所导致的。本文将详细介绍如何通过PHP解决这一问题。 首先,我们需要...