【整理】解决php输出文件下载时文件名含中文时出现乱码
来源:互联网 发布:印第安老斑鸠 知乎 编辑:程序博客网 时间:2024/06/10 01:48
由于某度众所周知的举动,让我搬离写了5年的渣度空间,准备把技术性的文章定在CSDN了。这些都是文章备份。勿怪。。
相关: http://blog.csdn.net/yangsp1/article/details/4301685 (不知道是否原创)
php下载时,用一个header可以确定保存为的名字:
header( 'Content-Disposition: attachment; filename="'.$saved_name.'"' );//$saved_name存为的名字
但是如果是中文的话,在ie下是乱码。其他浏览器是正常的。
这时候,需要urlencode($saved_name),ie下可以保存为正常的中文名字了。
但是其他浏览器在url编码时候不会自动解码。
这时候就要靠判断浏览器类型了了:
===============================
if(strpos($_SERVER['HTTP_USER_AGENT'],"MSIE"))header( 'Content-Disposition: attachment; filename="'.urlencode($this->saved_name).'"' );//如果是ie存为的名字要urlencodeelse header( 'Content-Disposition: attachment; filename="'.$this->saved_name.'"' );//存为的名字
=====================
即可解决。
另:输出文件的header写法:
========================================
header( "Pragma: public" );header( "Expires: 0" ); // 一定要设置不缓存哦。header( "Cache-Component: must-revalidate, post-check=0, pre-check=0" );header( "Content-type:".$mineType );header( "Content-Length: " . filesize( $path) );if(strpos($_SERVER['HTTP_USER_AGENT'],"MSIE"))header( 'Content-Disposition: attachment; filename="'.urlencode($saved_name).'"' );//如果是ie存为的名字要urlencodeelse header( 'Content-Disposition: attachment; filename="'.$saved_name.'"' );//存为的名字header( 'Content-Transfer-Encoding: binary' );readfile( $path);//读取并输出
======================
PS:在csdn上下载文件,非ie浏览器下载时候,就会莫名其妙的文件名成了一堆url编码,原来csdn也没判断浏览器,只照顾ie输出中文名么?还有右边那堆排名列表在opera下的错位让人都懒得吐槽了。。
- 【整理】解决php输出文件下载时文件名含中文时出现乱码
- 解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常
- 解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常
- 解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常
- 解决文件下载时文件名出现乱码的问题
- angular js 打开下载文件时文件名称为中文 IE浏览器出现乱码问题
- 解决PHP 输出csv文件中文乱码
- 解决文件下载时文件名乱码问题
- 解决JSP文件下载时文件名乱码问题
- 解决php保存文件时文件名乱码问题
- 解决下载文件时中文乱码问题
- IE 11下载文件中文乱码解决(go/php)
- 解决php 文件下载 IE 文件名中文乱码
- 整理java文件下载(中文乱码、火狐浏览器乱码、空格变+号、文件名包含空格时文件名可能显示不全等问题)
- 文件下载解决中文乱码
- 文件下载中文乱码解决
- PHP文件下载时乱码解决
- 输出文件时文件名称乱码
- Oracle列与行转换交叉表
- C++学习总结(一)
- U盘安装系统教程 如何用U盘装系统
- 社区反作弊工作的一点体会
- 一起学Windows Phone7开发(十二.一 Tile Notification)
- 【整理】解决php输出文件下载时文件名含中文时出现乱码
- 一道概率题
- JSON
- 一起学Windows Phone7开发(十二.二 ShellTileSchedule)
- 【整理】解决php输出时出现多余的空格或者换行
- 一起学Windows Phone7(十三.控件)
- dom解析
- C语言中基本的输入和输出函数的用法第二讲(C语言学习随笔四)
- C++函数中的static变量初始化及析构顺序