`

解决PHP在IE下载文件,为文件名为乱码问题

    博客分类:
  • php
阅读更多

通常使用以下代码就能导出为流的文件,而不是打开文件

header("Content-Type: application/force-download; charset=utf-8;name=\"$file_name\\");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment;filename=\"$file_name\"");



但是,如果$file_name是UTF-8编码的,比如文件名为测试.html;
ie这时就搞些小情绪,文件名变成了乱码了

在RFC2231的定义里面, 多语言编码的Content-Disposition应该这么定义:
Content-Disposition: attachment; filename*="utf8''%E6%B5%8B%E8%AF%95.html"
即:
filename后面的等号之前要加 *
filename的值用单引号分成三段,分别是字符集(utf8)、语言(空)和urlencode过的文件名。
所以这时应该对文件名进行url编码转换 ,使用php的urlencode很轻松就搞定了

因此,以上代码应该加上url编码转换

$file_name = urlencode($file_name);






分享到:
评论

相关推荐

    php中强制下载文件的代码(解决了IE下中文文件名乱码问题)

    在PHP中实现文件下载功能,并确保在不同浏览器尤其是Internet Explorer (IE) 中处理中文文件名不出现乱码问题,是一项常见的Web开发任务。从提供的文件信息中,我们可以提炼出关于实现文件下载以及如何处理IE下中文...

    PHP附件下载中文名称乱码的解决方法

    例如,如果原始文件名为“测试文档.pdf”,那么转换后的结果可能看起来是“%E6%B5%8B%E8%AF%95%E6%96%87%E4%BB%B6.pdf”。 2. 编码后的文件名需要被放置到HTTP响应头中的Content-Disposition字段中。这个字段用于...

    php导出csv数据在浏览器中输出提供下载或保存到文件的示例

    同时,对于IE浏览器,需要进行特定的处理以解决中文名乱码的问题。这通常涉及到对文件名进行urlencode和替换加号为%20的操作。 2. 将数据保存到服务器的文件系统: 使用PHP的file_put_contents函数将CSV数据写入到...

    php 解决substr()截取中文字符乱码问题

    在实际开发中,尤其是涉及到网页输出或者文件读写时,要确保整个流程中的编码一致性,包括源文件编码、数据库编码、输出编码等,这样才能避免乱码问题的发生。此外,对于IE6浏览器,由于其对某些编码的支持不足,...

    Testlink安装步骤指南

    修改testlink下的cfg文件夹下的const.inc.php文件,解决日期乱码问题。 Testlink安装注意事项 * 安装Testlink前,需要安装XAMPP。 * 创建数据库和用户时,需要选择正确的权限。 * 安装Testlink时,需要录入正确的...

    KODExplorer 芒果云-资源管理器

    - 选中文件时,移动到屏幕可视区域(解决上下左右选中文件滚动条不一致问题) ###ver2.51 `2014/6/22` ---- ####fix bug:(bug解决和程序优化) - 登陆多次密码输入错误验证码bug解决 - 修复漏洞:创建副本加入...

    Collector资料收集管理器

    1、修改数据库格式,添加一些数据库信息,程序会把旧数据库自动转换到新版本的数据库格式,在同目录下面有后缀名为OLD的原数据库的备份文件,以防万一出错。 2、新版本已经把Collector.ini放到可执行文件的当前...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用PHP进行Web开发的各个方面的知识和技巧,主要包括开发环境、PHP基础、Web页面交互、文件操作、会话应用、图形图像处理及面向...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用PHP进行Web开发的各个方面的知识和技巧,主要包括开发环境、PHP基础、Web页面交互、文件操作、会话应用、图形图像处理及面向...

    NewvBB Core 1.0 Final (vBulletin 简体中文化插件版)

    如果强行升级,可以保留帖子和用户内容,但是一切 Hack 相关的数据(如积分、金钱、保存在文件系统中的附件等)将不会保留。如果大家在安装使用过程中遇到任何问题,可以到 http://www.newvbb.com/ 讨论。欢迎您的...

    记事狗微博系统 4.7.4 Build 20140922 GBK.zip

    修复后台用户V认证分类中上传图标时修改了后辍名的问题 修复本周常赞我的人描述 修复快速注册不进入引导步骤的问题 修复取消转发时添加表情仍然保留“转发”字样的问题 修复本站链接解析时图片地址出错的问题 ...

    记事狗微博系统 4.7.4 Build 20140922 UTF8.zip

    修复后台用户V认证分类中上传图标时修改了后辍名的问题 修复本周常赞我的人描述 修复快速注册不进入引导步骤的问题 修复取消转发时添加表情仍然保留“转发”字样的问题 修复本站链接解析时图片地址出错的问题 ...

    公司基层单位计算机考试复习题一.doc

    12. .ini文件:扩展名为.ini的文件常用于存储程序的配置信息。 13. Excel冻结功能:Excel的冻结功能允许固定某些行或列,但不会阻止用户修改单元格内容。 14. USB设备:USB设备支持热插拔,即在电源开启状态下插入...

    php,ajax实现分页

    `来设置返回内容的类型和编码,解决在Firefox等浏览器下页面内容显示为乱码的问题。并且,作者指出在实际开发中,要负责任地对待浏览器兼容性问题,不要仅限于在IE环境下测试。 总结来说,本文介绍了使用PHP结合...

    网址网站导航整站源码

    .# 修复名站切换栏“我的收藏”网址IE浏览器下不在新窗口打开的Bug; .# 修复部分环境下后台左侧菜单不显示的Bug; .# 改进批量导入网址功能; .# 修正清空关键词分类后静态生成出错的Bug; .# 修正生成分类为空分类...

    apache 2.2.21 -win32-x86

    很实用的一个功能就是可以看到文件内容的行、列位置,按下图所示,点“查看”,勾选“状态栏”,界面右下角就多了个标记,“Ln 78, Col 10”就表示“行 78,列 10”,这样可以迅速的在文件中定位,方便解说。...

    WebFTP(支持ZIP在线解压) v2.5.1

    该源码WebFTP(支持ZIP在线解压) v2.5.1是目前比较新的一款源码,WebFTP为 OSDU.Net 开发的PHP在线文件管理系统,系统采用Ajax+Json进行数据通信,毫秒级的响应速度,强大的文件管理功能足以媲美专业的FTP软件;...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    DTD文件也是一个ASCII的文本文件,后缀名为.dtd。例如:myfile.dtd。 为什么要用DTD文件呢?我的理解是它满足了网络共享和数据交互,使用DTD最大的好处在于DTD文件的共享。(就是上文DTD说明语句中的PUBLIC属性)。...

    PHP+Ajax实现的博客文章添加类别功能示例

    此外,还执行了`set names gbk`语句,确保字符集设置正确,避免中文乱码问题。 最后,`index.php`是用户交互的前端页面,它包含了一个HTML结构,引用了`fun.js`脚本以实现Ajax功能。页面可能还包括其他元素,如表单...

    最新版114啦2010.9.23更新.rar

    .# 修复名站切换栏“我的收藏”网址IE浏览器下不在新窗口打开的Bug; .# 修复部分环境下后台左侧菜单不显示的Bug; .# 改进批量导入网址功能; .# 修正清空关键词分类后静态生成出错的Bug; .# 修正生成分类为空...

Global site tag (gtag.js) - Google Analytics