PHP Header下载文件在IE文件名中文乱码问题

解决方案一(我的页面是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,如下。
代码如下:

 代码如下 复制代码
<?php
$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']);
?>
时间: 2024-10-23 00:07:17

PHP Header下载文件在IE文件名中文乱码问题的相关文章

hadoop删除文件报错“NullPointException” 文件路径中文件名中文乱码

问题描述 hadoop删除文件报错"NullPointException" 文件路径中文件名中文乱码 大家好,我想请教一下关于hadoop文件删除的问题,希望有大牛在空闲之余给予指导. 问题描述:之前别的用户通过hadoop上传了文件,由于编码问题,之前人家上传的文件名读取出来 为中文乱码,例如:fileUrl==========hdfs://localhost:9000/user11417591508779_???????.docx, 现在我想删除这些乱码文件,由于文件路径中包含中文

php文件打开后出现中文乱码有哪些原因?

问题描述 php文件打开后出现中文乱码有哪些原因? 我用sublime,设置了UTF-8,前几天刚装好还没事,昨晚写了个文件打开后发现中文全乱码了,有没有可能是插件的问题? 解决方案 哎呀,把问题给搞混了,这个问题主要的原因时windows的编码问题,用iconv函数解决 解决方案二: php文件本身的编码与网页的编码应匹配 a. 如果欲使用gb2312编码,那么php要输出头:header("Content-Type: text/html;charset=gb2312"),静态页面添

zip压缩解决文件名中文乱码问题

使用jdk自带的zip工具类Java.util.zip.ZipEntry,java.util.zip.ZipFile,java.util.zip.ZipInputStream,java.util.zip.ZipOutputStream 进行zip压缩时,没法解决文件名中文乱码问题 这里使用apache 旗下的commons-compress 库,官网是:http://commons.apache.org/proper/commons-compress/download_compress.cgi

生成pdf文件的时候产生中文乱码问题

问题描述 点击生成pdf文件的时候产生中文乱码该如何设置 解决方案 解决方案二:你是用什么生成PDF的解决方案三:usingSystem;usingSystem.Collections.Generic;usingSystem.Drawing.Imaging;usingSystem.IO;usingSystem.Text;usingiTextSharp.text;usingiTextSharp.text.pdf;namespacePbreak.PDf{classMyPdf{#regionField

关于jsp-servlet实现文件上传的中文乱码问题

问题描述 关于jsp-servlet实现文件上传的中文乱码问题 servlet控制台打印出的文本中文显示的是问号,jsp页面,以及上传的文件都可以正常显示中文.请问怎么回事?项目编码,单个文件编码都设置成了utf-8,我单独写一个非servlet的java小程序控制台是可以显示中文的. 解决方案 这个也需要设置编码的,,,, 解决方案二: 用的websphere做服务器,这个需要设置编码吗? 解决方案三: 你控制台打印的文本是从哪里取来的,如果是从客户端获取来的请求参数的话,而又没有进行编码处理

遍历ftp,文件名中文乱码

问题描述 最近做的项目中需要一个提取ftp信息一个小程序,程序建立在apachecomments-net的基础之上.ftp服务器程序师FileZilla.控制连接要用iso-8859-1的编码才能让服务器识别命令,而在comments-net的数据处理里面,数据连接的编码是调用控制连接的.这样过来,中文就成为乱码了,恳请高人指教!FileZilla已经在附件中,comments-net,可以再[http://www.dirsphere.com/apachemirror/commons/net/b

下载文件个别浏览器文件名乱码解决办法_javascript技巧

复制代码 代码如下:     if (context.Request.UserAgent.ToLower().IndexOf("msie", System.StringComparison.Ordinal) > -1)//IE浏览器 {     context.Response.AddHeader("content-disposition", "filename=" + HttpUtility.UrlEncode(fileName)); }

zip压缩解决文件名中文乱码问题(2)

使用apache旗下的commons-compress 压缩和解压zip文件 可以参考我的前一篇博客:http://hw1287789687.iteye.com/blog/1976309 以下是我封装的一个工具类,专门负责zip的压缩和解压  CompressZipUtil: Java代码   package com.common.util;      import java.io.File;   import java.io.FileInputStream;   import java.io.

【IntelliJ IDEA】从资源文件读取出来就中文乱码的解决方法

在application.properties资源文件中设置两个自定义的属性以及属性值: com.sxd.name = "德玛西亚" com.sxd.want = "王者荣耀"   然后获取资源文件中定义的属性值出现乱码.   解决方法: 在资源文件中添加如下: banner.charset=UTF-8 server.tomcat.uri-encoding=UTF-8 spring.http.encoding.charset=UTF-8 spring.http.en