中间遇到一个问题是提交的中文文件名直接放到header里在IE下会变成乱码,解决方法是将文件名先urlencode一下再放入header,如下。

$file_name = urlencode($_REQUEST['filename']);

header("Pragma: public"); header("Expires: 0");

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header("Content-Type: application/force-download");

header('Content-Type: application/vnd.ms-excel; charset=utf-8');

header("Content-Transfer-Encoding: binary");

header('Content-Disposition: attachment; filename='.$file_name);

echo stripslashes($_REQUEST['content']);

?>

解决PHP Header下载文件在IE文件名中文乱码有两种常见的,一种是是把页面编码改成utf8,另一种是对中文url进入urlencode编码就可以解决了。

解决方案一(我的页面是utf-8编码):

$filename = "中文.txt";

$ua = $_SERVER["HTTP_USER_AGENT"];

$encoded_filename = urlencode($filename);

$encoded_filename = str_replace("+", "%20", $encoded_filename);

header('Content-Type: application/octet-stream');

if (preg_match("/MSIE/", $ua)) {

header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');

} else if (preg_match("/Firefox/", $ua)) {

header('Content-Disposition: attachment; filename*="utf8''' . $filename . '"');

} else {

header('Content-Disposition: attachment; filename="' . $filename . '"');

}

解决方法二

将文件名先urlencode一下再放入header,如下。

代码如下:

$file_name = urlencode($_REQUEST['filename']);

header("Pragma: public"); header("Expires: 0");

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header("Content-Type: application/force-download");

header('Content-Type: application/vnd.ms-excel; charset=utf-8');

header("Content-Transfer-Encoding: binary");

header('Content-Disposition: attachment; filename='.$file_name);

echo stripslashes($_REQUEST['content']);

?>

java ie下载文件名乱码问题_php中强制下载文件的代码(解决了IE下中文文件名乱码问题)...相关推荐

  1. 如何解决英文版Windows10下中文显示乱码问题?

    如何解决英文版Windows10下中文显示乱码问题[图文教程] 1.打开控制面板 2.按下图依次点击 下面的使用UTF-8编码需要的可以点击,一般不需要点击! 1.打开控制面板 2.按下图依次点击 下 ...

  2. 解决Spring框架下中文乱码的问题

    解决Spring框架下中文乱码的问题 参考文章: (1)解决Spring框架下中文乱码的问题 (2)https://www.cnblogs.com/Summer7C/p/4712818.html (3 ...

  3. java ssh乱码_SSH框架下中文字符乱码问题的研究

    1 Java中文乱码问题的产生原因 在Java Web的应用中,中文字符乱码问题是个由来已久和让人头疼的问题,尤其是刚刚接触Java Web编程的人员,往往在解决中文字符乱码问题上花费了大量的时间和精 ...

  4. java 下载后删除,在服务器端生成文件后,下载后并删除,改了后发现文件变成空白解决思路...

    当前位置:我的异常网» Java Web开发 » 在服务器端生成文件后,下载后并删除,改了后发现文件 在服务器端生成文件后,下载后并删除,改了后发现文件变成空白解决思路 www.myexception ...

  5. 【已解决】PyLaTeX 编译中文出现乱码

    [已解决]PyLaTeX 编译中文出现乱码 最近在使用PyLaTeX编辑文档时,由于是第一次在Python中编写中文的LaTeX文档,所以遇到了以下的问题: PyLaTeX无法编译中文: 产生的.pd ...

  6. mysql阿里云不显示中文乱码_MySQL命令窗口下中文显示乱码的解决过程

    MySQL命令窗口下中文显示乱码的解决过程 在dos客户端输出窗口中查询表中的数据,还有项目部署到服务器上时前台的页面,中文数据都显示成乱码,如下图所示: 这个问题困扰了我一天,后来解决了才发现原来我 ...

  7. 解决 Centos7 下中文显示乱码

    解决 Centos7 下中文显示乱码 博主博客 https://blog.uso6.com https://blog.csdn.net/dxk539687357 首先查看当前系统默认采用的字符集 命令 ...

  8. 一个整合OkHttp 、Retrofit 、Volley 、RxJava、Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决

    一个整合OkHttp .Retrofit .Volley .RxJava.Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决 AndroidHttp 一个 ...

  9. Linux下中文显示乱码 -- linux编码转换

    工欲善其事 必先利其器 Linux在稳定运行服务器的方面 一直是霸主 如此优秀 优秀 优秀的 人类高质量机器(狗头) ~~~~~~~~~~~~优雅~~~~~~~~~~~~ Linux下中文显示乱码,即 ...

最新文章

  1. Mysql 主从延时监控(pt-heartbeat)详解
  2. python程序设计报告-20192404 实验一 《Python程序设计》实验报告
  3. [YTU]_1063 (输入三个整数,按由小到大的顺序输出)
  4. 分摊的意思_接了两单顺风车遇到几个有意思乘客,后来把顺风车软件删了
  5. python相比于excel的优势_都在讨论Python能否取代Excel,那有没有人想到它
  6. 【C语言】中的版本规范(C89 C99等)
  7. 16-修改文件内容 - vi
  8. css知多少(2)——学习css的思路
  9. 【汇编语言】【ARM扩展资料】数据表示
  10. Win10系列:VC++绘制几何图形2
  11. 恒生电子:O45好在哪儿(深度)| 国君计算机李沐华
  12. 土豆视频ipad 5.0 客户端
  13. 未明学院:学员来稿 | 2019年中国电影分析报告
  14. 分享几个在线生成头像的网站
  15. 火柴人生存挑战2html5游戏在线玩,火柴人生存挑战
  16. 公司电脑监控软件究竟有何作用?
  17. 决策树 基于python实现ID3,C4.5,CART算法
  18. strcpy()、strncpy()、strlcpy()、strncpy_s()函数
  19. python源码深度剖析_Python源码剖析——深度探索动态语言核心技术 | 学步园
  20. mysql pt 慢日志_MySQL优化之慢日志分析(Anemometer+Pt-query-digest)

热门文章

  1. 分布式精华问答 | 如何实现分布式系统的高可用性?
  2. 边缘计算精华问答 | 边缘计算需要IaaS、PaaS、SaaS等服务能力吗?
  3. 【拨云见日】企业上云时代,多样化的公有云服务你了解多少?
  4. java 迷你桌面地图_求教贴,Java桌面小游戏的地图怎么做
  5. app inventor离线版_百度要哭了!今日头条出了搜索引擎了,还做了APP
  6. vue PC端国际化一站式解决方案
  7. 使用dubbo后尽量不用要@Reference可能引起冲突
  8. SQL中where 1 = 1的用处
  9. 企业实战_05_MyCat用户密码加密
  10. Oracle11g创建表空间语句