跨浏览器PHP下载文件名中的中文乱码问题解决方法

本文实例讲述了跨浏览器PHP下载文件名中的中文乱码问题解决方法。分享给大家供大家参考。具体如下:

代码如下:

<?php
$ua = $_SERVER["HTTP_USER_AGENT"];
$filename = "中文 文件名.txt";
$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 . '"');
}
print 'ABC';
?>

希望本文所述对大家的php程序设计有所帮助。

(0)

相关推荐

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

    中间遇到一个问题是提交的中文文件名直接放到header里在IE下会变成乱码,解决方法是将文件名先urlencode一下再放入header,如下. 复制代码 代码如下: <?php $file_name = urlencode($_REQUEST['filename']); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, po

  • PHP实现远程下载文件到本地

    代码很简单就不多废话了,直接奉上: <?php echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif"); function httpcopy($url, $file="", $timeout=60) { $file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file; $dir = pathinfo($file,PATHINFO_DI

  • php实现文件下载代码分享

    简单的文件下载只需要使用HTML的连接标记<a>,并将属性href的URL值指定为下载的文件即可.所示: <a href="http://www.jb51.net/download/book.rar">下载文件</a> 如果通过上面的代码实现文件下载,只能处理一些浏览器不能默认识别的MIME类型文件,例如当访问book.rar文件时,浏览器并没有直接打开,而是弹出一个下载提示框,提示用户"下载"还是"打开"等处

  • php实现文件下载(支持中文文名)

    复制代码 代码如下: /*======================================================  $FileName 为文件名称,必传  $FilePath 为文件路径.选填,可以为相对路径或者绝对路径      路径只能由英文跟数据组成,不能带有中文 ======================================================*/ <?php  header("Content-type: text/html;char

  • Php中文件下载功能实现超详细流程分析

    客户端从服务端下载文件的流程分析: 浏览器发送一个请求,请求访问服务器中的某个网页(如:down.php),该网页的代码如下. 服务器接受到该请求以后,马上运行该down.php文件 运行该文件的时候,必然要把将要被下载的文件读入内存当中(这里是圣诞狂欢.jpg这张图片),这里通过fopen()函数完成该动作 注意:任何有关从服务器下载的文件操作,必然需要先在服务端将文件读入内存当中 现在文件已经在内存当中了,这是需要从内存当中读取文件,通过fread()函数完成该动作 需要注意的是,如果文件较

  • php 下载保存文件保存到本地的两种实现方法

    第一种: <?php function downfile() { $filename=realpath("resume.html"); //文件名 $date=date("Ymd-H:i:m"); Header( "Content-type: application/octet-stream "); Header( "Accept-Ranges: bytes "); Header( "Accept-Length

  • php下载文件的代码示例

    复制代码 代码如下: <?php $file = 'monkey.gif'; if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Tra

  • php实现支持中文的文件下载功能示例

    前言 本文主要给大家介绍了关于php实现支持中文的文件下载功能的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 问题说明 文件下载,通常有一种最为简单的方法,那就是将url直接指向服务器上文件的所在位置.但是这个方法存在很大的安全隐患. 暴露了服务器文件目录结构 无法禁止非法请求来源,无法对文件下载请求做安全验证 解决方案 一.将文件下载请求映射到后端程序url 借助http服务器(apache/nginx)实现映射功能 这里以apache为例进行说明 借助apach

  • PHP文件下载类

    复制代码 代码如下: <?    //====================================================    //   使用范例:    // $download=new download('php,exe,html',false);    //  if(!$download->downloadfile($filename))    //  {    //    echo $download->geterrormsg();    //  }    

  • 跨浏览器PHP下载文件名中的中文乱码问题解决方法

    本文实例讲述了跨浏览器PHP下载文件名中的中文乱码问题解决方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: <?php $ua = $_SERVER["HTTP_USER_AGENT"]; $filename = "中文 文件名.txt"; $encoded_filename = urlencode($filename); $encoded_filename = str_replace("+", "%20",

  • PHP中使用file_get_contents抓取网页中文乱码问题解决方法

    本文实例讲述了PHP中使用file_get_contents抓取网页中文乱码问题解决方法.分享给大家供大家参考.具体方法如下: file_get_contents函数本来就是一个非常优秀的php自带本地与远程文件操作函数,它可以让我们不花吹挥之力把远程数据直接下载,但我在使用它读取网页时会碰到有些页面是乱码了,这里就来给各位总结具体的解决办法. 根据网上有朋友介绍说原因可能是服务器开了GZIP压缩,下面是用firebug查看我的网站的头信息,Gzip是开了的,请求头信息原始头信息,代码如下: 复

  • java中FileOutputStream中文乱码问题解决办法

    java中FileOutputStream中文乱码问题解决办法 使用FileOutputStream序列化可以直接向文件写入文本内容,代码如下: FileOutputStream outStream = new FileOutputStream(file); outStream.write(str.getBytes()); outStream.close(); 但这里的字符串如果包含中文,就会出现乱码,这是因为FileOutputStream是字节流,将文本按字节写入文件,而一个汉字是两个字节,

  • JSP出现中文乱码问题解决方法详解

    在介绍方法之前我们首先应该清楚具体的问题有哪些,笔者在本博客当中论述的JSP中文乱码问题有如下几个方面:页面乱码.参数乱码.表单乱码.源文件乱码.下面来逐一解决其中的乱码问题. 一.JSP页面中文乱码 在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码. 先看一个JSP程序: <%@ page language="java" import="java.util.*" %> <html> &

  • PHP基于curl post实现发送url及相关中文乱码问题解决方法

    本文实例讲述了PHP基于curl post实现发送url及相关中文乱码问题解决方法.分享给大家供大家参考,具体如下: 这个问题困扰我几天了,发送的指定网址的url参数,中文总是乱码,指定网址是utf8编码的,我发送的也是utf8编码的.但是还是乱码,开始用的file_get_contents,后来换成curl并在php.ini中开启了php_curl,还是不行,又加了header终于解决.代码如下: $url = 'http://'; //调用接口的平台服务地址 $post_string = a

  • Android Studio升级3.6 Build窗口出现中文乱码问题解决方法

    前言 最近受疫情影响,很多互联网企业目前才开始慢慢复工,希望这次的疫情没有影响我们码代码的心情. 问题 好的一点,我们的AndroidStudio迎难而上,最近发布了3.6最新版本,不得不说最新版本还是更新了很多地方,但也有出现了一些问题,比如我最近就碰到了这么一个问题,在我升级到了Android Studio3.6以后发现,编译的时候在底部出现的Build窗口中文出现了乱码的问题,代码中没有出现乱码情况,如下图: 这种问题就很头疼了,我先是在File->Settings->File Enco

  • Windows下利用Gvim写PHP产生中文乱码问题解决方法

    首先:找出乱码产生的原因. 一直以为是浏览器的原因,结果我在chrome,firefox,IE9里面都出现了乱码,所以浏览器的因素可以排除.为了验证我猜测是Gvim的原因, 我用记事本(note)简单写了一个php文件 复制代码 代码如下: <?php echo "你好"; echo "世界"; ?> 结果没有出现乱码,所以问题就出在Gvim上,这个结论水到渠成. 于是,开始研究Gvim的配置文件(_vimrc), 现在给大家看一下我产生乱码之前的配置(

  • java压缩zip文件中文乱码问题解决方法

    通常用java来打包文件生成压缩文件后,有如下两个地方会出现乱码 : 1.内容的中文乱码问题,这个问题网上很多人给出了解决方法,主要有两种方法:一是修改sun的源码:另一个是使用开源的类库org.apache.tools.zip.ZipOutputStream和org.apache.tools.zip.ZipEntry,这两个类ant.jar中有,可以直接下载使用即可,毫无疑问,选择后者更方便 2.压缩文件注释的中文乱码问题:zos.setComment("中文测试");这个问题网上对

  • Python2.x中文乱码问题解决方法

    Python中乱码问题是一个很头痛的问题. 在Python3中,对中文进行了全面的支持,但在Python2.x中需要进行相关的设置才能使用中文.否则会出现乱码 [问题原因] 在Python2.x中主要是字符编码的问题,处理不好的话,会导致乱码.Python默认采取的ASCII编码,字母.标点和其他字符只使用一个字节来表示,但对于中文字符来说,一个字节满足不了需求. 复制代码 代码如下: >>> import sys  >>> sys.getdefaultencoding

  • Android Studio的中文乱码问题解决方法

    Android Studio安装后发现所有的中文,不管是界面上的还是输出的log中的中文都变成小框框  可以肯定是字体的问题 解决:菜单File->settings对话框,切换到Appearance标签  选择override default fonts by, 先随便选择一个中文字体(PS:小框框都是中文字 呵呵),保存,重启软件,即可.

随机推荐