解决IE浏览器下载文件,文件名乱码问题(浏览器历史介绍)

Flask项目中下载文件,中文文件名在IE浏览器下出现乱码情况解决方案 一、问题描述 Python的Flask项目,做上传下载时按照原文件名进行,偶尔会出现中文文件名,当执行下载时在IE中会出现乱码问题,下面是解决方案。 二、解决方案 from flask import make_response, send_from_directory from urllib.parse import quote # for python3 # from urllib i... 阅读详情

这个问题,CS开发模式总会遇到过。在此详细记录,以作技能储备。

 

先说段历史故事:


史前世界:1945~1994年    有一位美国科学家叫Vannevar Bush3在1945年虚构出来了一台名为Memex的桌面设备作为Web理念最早期的原型。这个Memex呢,用于在微缩胶卷上创建和标注跨文档链接,并按照这些链接而跳转切换到所引用的其他微缩胶卷上,使用方式大略类似于我们现在的书签和超链接。

他超级兴奋,认为这将革命性地改变知识管理和数据挖掘;

在当时,一直到20世纪90年代初期,挺多的人觉得这种想法非常的愚笨天真可笑。

 

20世纪60年代,诞生了IBM的GML(Generalized Markup Language,通用标记语言),它用可供机器读取识别的指令作为文档的标识符,以标志每段文本的功用,可以明确地指明“这里是文档的头部”,“这里是几个列表项目”诸如此类。

 

在此后经过20多年的发展,GML(一开始只是用在一些IBM笨重大型机的文本编辑器里)逐渐演变成SGML(Standard Generalized Markup Language,标准通用标记语言)。SGML语言更通用灵活,它把GML原来基于冒号和句号的笨拙语法,改成了我们熟悉的尖括号格式的语法。

 

又过10年之后,有两位科研人员,Tim Berners-Lee 和Dan Connolly 开始寻找新的跨域引用方案—这个方案必须非常简洁明了。他们草拟了HTML(HyperText Markup Language,超文本标记语言),Html是一套继承自SGML的精简版语言。随后他们又进而开发了HTTP协议(HyperText Transfer Protocol ,超文本传输协议)

 

他们研究工作的总成果就是这个诞生于 1991~1993之间由Tim Berners-Lee开发的World Wide Web 程序,这个最原始状态的浏览器可以解析HTML文件,还可以把用户提交的数据显示出来,并且只需要点击一下鼠标,就可以在不同页面之间切换浏览。

 

 
很多人都觉得HTTP 和HTML 的设计简直是个巨大的倒退。毕竟,很多早期的构想都鼓吹自己包含数据库整合、安全和数字版权管理,或者整合了内容编辑和出版。
然而,因为HTTP和HTML的门槛低,即时可用,扩展性不受限制(正好与那时计算机的运算能力越来越强,价钱更为人接受,互联网也开始普及的时机相吻合),原先毫不起眼的WWW项目突然演变成一波热潮。
 
1993年Mosaic浏览器登场了,它由美国伊利诺伊大学(University of Illinois)开发,是第一款广泛使用的、成熟的Web浏览器。
Mosaic 扩展了原先World Wide Web 的代码,增加的功能包括:在HTML文档里添加内嵌的图像,通过表单提交数据,奠定了今天交互式和多媒体应用的基础。
 
Mosaic 是 另外两个浏览器的基础:Mosaic Netscape(后来改名为 Netscape Navigator )和Spyglass Mosaic(后来被微软收购并改名为 Internet Explorer ),同时期还有好几种非Mosaic引擎的产品浏览器,例如挪威的Opera。
 
1994年,为了解决开发上日益混乱的场面和管理HTML的升级扩展,Tim Berners-Lee和一群资助的公司创建了W3C理事会

W3C 成立原因:

       浏览器开发商之间的这场军备竞赛主要体现在各竞争产品都在非常快速地开发迭代,以及疯狂加入各种新功能,也就完全无法顾及产品是否符合规范标准,甚至来不及用正儿八经的文档记录下各种新代码新功能。对核心HTML特性的擅自调整包括各种蠢事(如闪烁的文字,这是Netscape的发明创造,但最终沦为笑柄)乃至一些著名的特性,如可更换字样(Typeface)或可以在所谓的框架(Frame)里嵌入外部文档。在各浏览器厂商的产品里,往往还内置对自家编程语言(如JavaScript和Visual Basic)支持,以及可在用户机器上执行跨平台Java或Flash小程序的插件,支持有用但颇诡异的各种HTTP扩展(如Cookie)。这一阶段的浏览器尽管囿于某些专利和商标上的原因,彼此间会有兼容性问题,但这些不兼容大都还比较表面。

      随着Web的日益发展壮大和百花齐放,一种隐秘的恶疾悄然在浏览器引擎之间传播开来,尽管表面上还勉强维持着兼容性。这么做最开始的理由听上去还蛮合情合理的:如果浏览器A可以正常显示一个有问题的页面,而浏览器B却拒绝解析这个页面(无论基于何种原因),用户肯定会认为这是浏览器B有问题,而一股脑地选择貌似更强大的浏览器A。为了确保浏览器可以正确地显示任何网页,工程师的开发变得越来越复杂,也没有什么正式的文档来描述浏览器对于网站管理员胡乱提供的网页,是怎么进行主动猜测解析的,而在这些处理过程中往往会牺牲掉安全性,偶尔也会累及兼容性。遗憾的是,这样的变动往往又会进一步纵容各种不靠谱的网页设计观念,迫使其他浏览器开发商为免掉队,也只能亦步亦趋地跟进。当然,相关规范标准的细节缺失,更新也不及时,更是助长了这种恶疾的蔓延。

 

第一次浏览器大战:1995~1999年

网景导航者 Netscape Navigator:

1994公布0.9版,修改后发布1.0版本;

1996年网景的占有率达到70%的高峰。

 
网络探路者 Internet Explorer

1995年发布IE1;

1996年,Windows操作系统绑定安装了IE浏览器,开始占领市场;

2002年IE拥有了95%的市场份额。

IE完胜。

 


平淡期: 2000~2003年

Netscape Navigator退出市场

同时垄断也滋生了自满,微软处于无敌地位之后就完全缺乏动力去改进自己的浏览器。

虽然有很多漏洞和安全问题,但其他势单力孤的浏览器厂商难带来什么翻天覆地的变化。

另一方面,缓慢的开发进展使W3C得以追上浏览器的实际状况,并认真探索未来Web的一些新概念。

XMLHttpRequest微软推出的一个颇不起眼的专有API,没想到现在却如此的大放异彩。

 


第二次浏览器大战:2004年至今

2004年,浏览器舞台上出现了一位新选手:

Mozilla Firefox 的图像结果

Mozilla Firefox(原网景公司Navigator浏览器的后裔,由开源社区开发)它针对的正是IE糟糕的安全性和与标准的不兼容性。在获得IT专栏作家和安全专家的普遍肯定后,Firefox 很快获得了20%的市场份额。尽管这位后来者很快也被证明和微软浏览器一样,受到各种安全漏洞困扰,但由于Firefox的开源特性,以及无需迎合顽固的企业用户,使它的问题修复较为迅速及时。

注意:为什么浏览器开发领域里的竞争如此激烈呢?严格来说,浏览器的市场份额并没有办法直接转化成金钱收入。但专家们认为这关乎权势地位:因为可以通过浏览器来捆绑、推销或边缘化某个在线服务(即使像默认搜索引擎这么简单的服务),也就是说谁控制了浏览器,谁就控制了互联网。注意 为什么浏览器开发领域里的竞争如此激烈呢?严格来说,浏览器的市场份额并没有办法直接转化成金钱收入。但专家们认为这关乎权势地位:因为可以通过浏览器来捆绑、推销或边缘化某个在线服务(即使像默认搜索引擎这么简单的服务),也就是说谁控制了浏览器,谁就控制了互联网。
       这些事实连同突然杀入市场的苹果公司浏览器Safari和Opera浏览器在智能手机领域的步步领先,一定使微软的高层深觉头痛不已。他们已经错失了20世纪90年代互联网第一波高潮;当然他们不想再犯同样的错误。微软重新加大了对IE浏览器的投入,发布了有极大提升和在某些方面来说更安全的版本,从IE7、8迅速迭代到了IE9。
        好像还嫌事情不够混乱,由于对W3C理事会在创新性上的不满,一群参与者创建了一个全新的标准组织,叫网页超文本技术工作小组(Web Hypertext Application Technology Working Group,WHATWG)来主导HTML5协议的开发,这是对现有标准的第一次整体性和把安全也考虑进去的修订,但据报道,他们经常由于专利纷争而没法和微软达成一致(所以HTML5在IE中存在不兼容)。

 

 

再说个历史问题。


首先,根据 HTTP 1.1 协议规范( RFC 2616 Section 4 ), HTTP 消息格式其实是基于古老的 ARPA INTERNET TEXT MESSAGES ( RFC 822 Section 3 ),根据其规定,消息只能是 ASCII 编码的。 RFC 2616 Section 2.2 又一次强调, TEXT 中若要使用其他字符集,必须使用 RFC 2047 的规则将字符串编码为 ASCII 码(事实上这个规则原本是针对 MIME 的扩展,使用的是 base64 编码,格式与百分号编码有很大不同)。总而言之,按照标准, HTTP Header 中的文本数据必须是 ASCII 编码的。

filename="TEXT"
 ;这是 RFC 2616 标准,TEXT必须是 ASCII 字符且被认为就是“原文”
filename*=charset'lang'encoded-text
 ;这是按照 RFC 2047 扩展后的,注意格式上的细微区别,采用 base64 编码(编码结果也是 ASCII 字符)
然而,事实上在1999年 HTTP 1.1 标准推出之时, Content-Dispostion 这个 Header 尚不是正式标准的一部分,只不过是因为被广泛使用而从 MIME 标准中直接借用过来了而已(  RFC 2616 Section 19.5.1  )。因而几乎没有浏览器去支持 Content-Disposition 的多语言编码特性这样一个“扩展特性的扩展特性”(事实上, HTTP 1.1 草案中建议的使用 RFC 2047 来进行多语言编码的特性从未被主流浏览器支持过)。 可是这个问题却的确是现实需要的,所以浏览器就各自想出了一些办法:
  • IE支持两种格式的混合版:filename="encoded_text" (这里采用的是百分号编码)。本来按照 RFC 2616 ,引号内的部分应当直接被当作内容,就算它“看起来像是编码后的字符串”;可是IE却会“自动”对这样的文件名进行解码——前提是该文件名必须有一个不会被编码的后缀名(即正常的英文字母后缀名)!
  • 其他一些浏览器则支持一种更为粗暴的方式——允许在 filename="TEXT" 中直接使用 UTF-8 编码的字符串!
这两类浏览器的行为是彼此互不兼容的。所以你可以判断 UA 然后对IE使用前一种办法,其他浏览器使用后一种,这样便可以达到一般情况下能够 just work 的效果( Discuz 就是这么做的)。不过对于 Opera 和 Safari ,这样做可能不一定有效。 时代在进步,2010年  RFC 5987  发布,正式规定了 HTTP Header 中多语言编码的处理方式,应当采用类似 MIME 扩展的 parameter*=charset'lang'value 的格式,但是其中 value 应根据  RFC 3986 Section 2.1  使用百分号进行编码,并且规定浏览器至少应该支持 ASCII 和 UTF-8 。随后,2011年  RFC 6266  发布,正式将 Content-Disposition 纳入 HTTP 标准,并再次强调了 RFC 5987 中多语言编码的方法,还给出了一个 范例 用于解决向后兼容的问题
Content-Disposition: attachment;
                      filename="$encoded_fname";
                      filename*=utf-8''$encoded_fname
在这个例子中,对于较新的 Firefox 、 Chrome 、 Opera 、 Safari 等浏览器,都支持新标准规定的 filename* ,并且会优先使用,所以尽管 filename=”encoded_text” 不被它们支持, 仍然不会有问题;至于使用 UTF-8 只是因为它是标准中强制要求必须支持的。而对于旧版本的IE浏览器,它们无法识别后面的 filename* ,会自动忽略并使用旧的 filename 。
这样一来就完美解决了多浏览器的多语言兼容问题,既不需要 UA 判断,也符合标准。
 
正文分隔符

 


 

 

 

问题表现:

两个完全相同的系统,一个在本机,一个在服务器上。

服务器上的系统,部分IE(版本相同)下载文件名会乱码。

 

解决思路:

查看了两次请求的 请求头 与响应头

正常请求
 
 
乱码请求
 
 
  
正常响应
 
 
异常响应
 
 
  

 

发现 User-Agent (用户代理)不同。

更改判断IE条件并更改对应的编码。

 

IE的话,通过URLEncoder对filename进行UTF8编码。

而其他的浏览器(firefox、chrome、safari、opera),则要通过字节转换成ISO8859-1

 

只需要判断客户端是否为IE,然后对filename进行相对应的编码。

 
if ((request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) || (request.getHeader("User-Agent").contains("Trident"))) {  
    filename = URLEncoder.encode(filename, "UTF-8");  
    System.out.println("IE");
} else {  
    filename = new String(filename.getBytes("UTF-8"), "ISO8859-1"); 
    System.out.println("非IE");
}

  

完毕!

 

 




 

 
 
 
 
LDPC码译码原理——概率公式推导 怎么说呢,一直以来都想写一下博客。近半年多来我一直在学习LDPC码译码上的东西,主要是在FPGA实现上的,所以这次想写一些关于这方面的内容,包括译码的原理、仿真以及实现。(当然是基于准循环LDPC码上实现的)不过呢,我写这个的初衷是为了让初学者理解入门用的,而不是在大牛面前班门弄斧,有错误之处欢迎大家批评指正。不知道会不会有人一开始像我一样,为了学好LDPC码,先去好好了解其它的诸如RS码或者是卷... 阅读详情

相关推荐

第3章 信息技术服务(一)

对 第三章 《信息技术服务》中第一、二、三节 <内涵与外延、原理与组成、服务生命周期>进行总结、归纳

好好学习,天天向上的博客 733

IE文件下载时中文文件名乱码

IE下载时中文文件名乱码,按照网上找的解决方法。 第一种方法如下。 1.Win + R输入gpedit.msc打开组策略编辑器;(详见第3步) 2.定位到计算机配置→管理模板→windows组件→Internet Explorer→自定义用户代理字符串;(详见第4步) 3.双击打开,左上角选中已启动,下方输入字符串“MSIE 9.0”;(详见第5步) 4.点击确定;

qq_33234164的博客 1060

autodl云服务器使用中的conda源报错

通过find path -name filename找到.condarc文件,在autodl服务器中,一般在/root/.condarc。为了利用jypyter打开conda虚拟环境运行,需要下载ipykenel。这个报错是源的问题,在通过源获取包元数据时出现了HTTP 429错误。通过conda换源解决。修改.condarc文件,命令: vim .condarc。但这样还不能解决问题,得把报错中有问题的源注释掉。通过以下命令添加清华镜像源。把报错的链接源注释如下。

Ty_kilig的博客 1584

IE浏览器下载文件中文文件名乱码问题解决

在web开发工作当中,浏览器兼容性问题总是会引来一大波前端攻城狮们的疯狂吐槽,尤其是IE浏览器更是一个神一般的存在,总是让人头疼不已。 前段时间用java在做一个文件上传下载功能时,发现部分IE浏览器上下载文件名是中文的文件时会出现文件名乱码的现象,经过查看平常调用的两个文件下载工具类源代码发现其中一个工具类原来代码写得非常简单粗暴,没做任何判断,直接使用ISO8859-1格式对文件名进行编

lisehouniao的博客 2万+

LVGL core disp显示设计(lv_disp.c)

lv_disp.c当前显示页面的配置scr_act在原始的LVGL是以screen的概念存在,但我们还是习惯叫它为一个页面提供获取top_layer、sys_layer、prev_scr图层接口配置主题管理默认的主题管理是递归查找的,实际项目中因此页面的复杂性,虽然也兼容了此主题管理的方案,但还是推荐使用单页面自行管理主题的方案壁纸设置多页面切换的动画支持计算无用户操作时间清理显示缓存。

Bigan(安)的博客 2330

Python爬虫经典案例第67篇:社交媒体平台爬取:Twitter数据采集实战

Twitter(现更名为X)是全球最具影响力的社交媒体平台之一,拥有超过3.3亿月度活跃用户。作为一个实时信息传播平台,Twitter上的数据涵盖了新闻、政治、娱乐、科技等各个领域,具有极高的研究价值:本文将深入探讨Twitter数据采集的技术方案,包括官方API调用、网页爬取和浏览器自动化三种方式。Twitter采用现代化的微服务架构,主要特点包括:Twitter作为全球最大的社交媒体平台,拥有完善的反爬机制:在开始爬取前,需要明确合法的数据采集方式:重要提示:未经授权爬取Twitter数据可能违反服务条

2201_76125261的博客 658

ie下 链接中utf-8乱码问题

一般来说,链接中如有中文,可以用urlencode加密下,但如果遇到用户强行

kangjianrong的专栏 2064

Uni-App 使用极光推送完整指南

Uni-App集成极光推送的完整指南:从注册极光账号到代码实现。包含前期准备(获取AppKey、注册厂商账号)、Uni-App配置(插件导入、初始化代码)、高级功能(角标设置、Java后台接口)及常见问题排查。详细说明了推送监听、registrationID获取、消息接收处理等核心功能实现步骤,并提供两种推送接口示例(按平台推送和统一推送)。适合需要在Uni-App项目中实现推送功能的开发者参考。

cyj0919的博客 425

Microsoft Edge浏览器下载文件乱码修复方法

随着Windows10的普及,Microsoft Edge自带浏览器使用频率逐渐提升,在日常使用过程中我们会发现一个常规的问题是使用Edge进行日常文件下载的时候,N多情况下可能都是乱码,同样的下载链接在Chrome\Firefox\IE等等都是没有问题的,这就很尴尬了,今天简单介绍下处理方法,具体如下:乱码问题:处理方法:1.热键Win + R打开运行栏,输入gpedit....

weixin_33935777的博客 2770

SAP_MM模块非限制库存转冻结库存

项目非限制 → 冻结事务码移动类型343影响库存不可用,不参与MRP常见用途质量问题封存、盘点冻结、待退货品通过本文,我们了解了 SAP 的[SAP_MM模块非限制库存转冻结库存]的基本概念和应用方法。希望这些信息能帮助您在实际工作中更好地使用 SAP 系统,提高工作效率和管理水平。更多SAP文章请点击更多SAP文章更新,大家一起学习进步!!!文章中如有错误。敬请指正!搜索公众号:SAP资料文库微信号:SPRO_PP时间:2025-10-14。

我小时候很黑的博客 583

基于Python的船舶AIS数据爬取与分析:从数据采集到可视化实战

本文详细介绍了如何使用Python构建一个完整的船舶AIS数据爬取与分析系统。文章从AIS系统的基本原理讲起,逐步深入到数据采集、存储、清洗、分析和可视化的全流程。我们将使用最新的Python技术栈,包括aiohttp异步爬虫、MongoDB存储、Pandas数据处理以及Pydeck三维可视化等。本文提供了完整的代码实现,并探讨了在实际应用中可能遇到的问题及其解决方案。关键词:AIS数据、Python爬虫、异步IO、数据可视化、海事分析。

2201_76125261的博客 811

IE浏览器下载文件名出现中文乱码问题解决

最近做的一个项目,出了个小问题,使用google浏览器下载文件正常,结果使用IE11浏览器下载文件时,发现就下载失败。 问题原因:当请求的url中含有中文时,google浏览器会自动进行URL编码,请求的中文会变成如下格式, 而对于IE浏览器而言,不会进行URL编码,请求的中文依然是中文,所以到后端之后,就会出现错误;   解决方法: 在后端给出下载地址到前端之后,先进行一次URL编...

wmx1992的博客 7943

uniapp | 基于高德地图实现位置选择功能(安卓端)

在uni-app项目中实现地图位置选择功能的解决方案。由于uni.chooseLocation功能受限,采用高德地图API自主开发。系统由父组件poiMap.vue(负责展示和跳转)和子组件poiBox.vue(核心地图逻辑)构成,通过父子组件通信传递位置数据。关键技术包括:1)使用AMapLoader动态加载地图SDK;2)集成PositionPicker实现拖拽选点;3)异步加载AMapUI插件;4)通过事件监听获取位置详情(地址/经纬度)。

大胆尝试,小心实践 731

java 下载文件的文件名乱码_java下载文件名乱码解决方法介绍

java Web开发下载文件功能(代码如下),文件名如果带有中文,经常会出现乱码现象,需要进行编码。(推荐:java视频教程)String fileName = "测试文件.doc";try { HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalC...

weixin_28867991的博客 6252

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

IE浏览器下载中文文件,文件名乱码或变成下划线问题

在web开发工作当中,浏览器兼容性问题总是会引来一大波前端攻城狮们的疯狂吐槽,尤其是IE浏览器更是一个神一般的存在,总是让人头疼不已。 前段时间用java在做一个文件上传下载功能时,发现部分IE浏览器上下载中文文件名文件时会出现文件名乱码的现象。经过查看之前调用的两个文件下载工具类源代码发现其中一个工具类原来代码是直接使用ISO8859-1编码对文件名进行编码,而另一个工具类则多了一层筛选,通过对浏览器请求头中的User-Agent参数中是否存在MISE关键字对进行了判断,当用户使用浏览器是IE时使用URL

WziH_优快云的博客 2690

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题

最近做项目,采用Spring MVC做控制层,下载文件的文件名总是在主流浏览器上显示乱码,Firfox不是乱码了,IE下又成了乱码。也是烦,IE总是独树一帜,没办法,只能让程序去适应,在网上也搜索了很多,但是解决的不理想,主要是IE11作为主流浏览器后,很多人之前提出的方案都失效了。 简单来说,之前使用request获取header中的user-agent,通过MSIE关键字来判断是否是IE浏览器

小飞鱼的blablabla... 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java下载文件时文件名自动转义及乱码的解决

在做java文件下载时碰到了这个问题,从前端传来的参数与后台接收的参数都是正确的,但是经过编码设置下载后,文件名中的符号,如[]被自动转义了,示例: response.addHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(filename,"UTF-8")); 这样设置文件名,...

YDesire的博客 6452

文件下载文件名乱码问题

关于java文件下载文件名乱码问题的处理: String fileName = "下载的文件名"; String userAgent = request.getHeader("User-Agent"); //针对IE或者以IE为内核的浏览器: if (userAgent.contains("MSIE")||userAgent.contains("Trident")||userAgent.c...

沧海一粟 2501

阿里云oss中解决IE浏览器下载中文文件时乱码问题

在最近接触的一个项目中,IE浏览器下载阿里云oss存储的文件时,出现了乱码问题。 原因: 在上传接口中,设置了下载时的文件名为原上传的中文名,文件名应该用rawurlencode编码一下,urlencode编码会导致空格用“+”号代替,所以采用rawurlencode() 函数可以把空格编码替换为%20 /** * 上传文件 * @param string 上传之后的 OSS object 名称 * @param string 删除文件路径 * @return bo

Jenny的博客 3392

不同浏览器下载文件时中文文件名乱码问题(最新)

不同浏览器下载文件时中文文件名乱码问题(最新)

shuai的博客 6466

Java 使用IE浏览器下载文件,文件名乱码问题

使用Servlet实现文件下载功能时,使用IE下载出现文件名乱码; 网上常见的解决办法是通过"user-agen"来判断浏览器: if (req.getHeader("user-agent").toLowerCase().contains("msie")) { // IE filename = URLEncoder.encode(filename, "UT...

z69183787的专栏 1750

java 下载文件的文件名乱码_详细解决java文件下载文件名乱码问题

更新时间: 2020年1月14日10:07:12作者: 程序猿001本文主要介绍针对Java文件中文件名下载乱码问题的详细解决方案. 本文中的示例代码非常详细,对每个人的学习或工作都有一定的参考学习价值. 需要它的朋友可以关注以下内容下载下来的文件名乱码,让我们一起学习和学习下载JAVA文件时有两种情况下出现乱码:1下载下来的文件名乱码,下载时中文文件名乱码2,由于该路径在下载过程中包含中文文件名...

weixin_35573869的博客 2489

Java下载文件名称中文乱码问题

问题: java中用poi API进行Excel文件的下载,下载操作可以执行,可是最后发现下载的文件名称若为中文,则会出现乱码。 解决办法: 原因:ie浏览器下自动转码格式为gbk,而火狐、chrome等浏览器下的自动转码格式为utf-8 因而,在生成下载文件名时,只需根据不同的浏览器,对文件名进行转码即可。 /** * 下载文件输出流 文件头设置 * @param respo...

weixin_43525290的博客 2111

Windows下IE浏览器文件下载

Windows下IE浏览器文件下载 微软系浏览器的内核特立独行,下载文件的文件名编码格式不同于其他浏览器,经常会造成乱码的问题。通过HttpServletRequest获取到对应的User-Agent来判断浏览器的类型。如下为chrome浏览器在MacOS下的User-Agent。 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.414

leekari 2373

Flask下载文件,中文文件名在IE浏览器下出现乱码

1 问题描述 Python的Flask项目,做上传下载时按照原文件名进行,偶尔会出现中文文件名,当执行下载时在IE中会出现乱码问题。quote是将文件名urlencode化,然后以适应IE浏览器 2 解决方案 import os from urllib.parse import quote # from urllib import quote for python2 from flask import request, make_response, send_from_directory @ap

apollo_miracle的博客 1056

PHP解决IE浏览器下载文件名乱码问题

网站开发中,经常会碰到下载文件功能,某些需求就要下载文件名为中文。 一般输出中文都会用UTF-8编码,但IE浏览器的一些版本转换下载文件名时,并不使用UTF-8编码,导致文件名乱码。测试了名为“中文.txt”的文件下载功能,在IE 11浏览器的下载如下: 在其他浏览器上,比如chrome,火狐,360都没有问题: 尝试了一下,在文件名输出时,将文件名转换成gb2312

coderchc的专栏 4406
上一篇: CuteFTPUtils ftp上传下载工具类
下一篇: echarts 初始化失败问题。
JavaOpsPro
博客等级 码龄11年 1892粉丝 42原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JavaOpsPro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值