PHP附件下载中文名称乱码怎么办
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关PHP附件下载中文名称乱码怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:PHP中,如果要下载的文件名称为中文,则会出现文
千家信息网最后更新 2025年01月19日PHP附件下载中文名称乱码怎么办
这篇文章将为大家详细讲解有关PHP附件下载中文名称乱码怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
具体如下:
PHP中,如果要下载的文件名称为中文,则会出现文件标题乱码。
此时就需要对标题进行编码,也就是说先进性urlencode,然后再放入header,然后问题就解决了。
$filename = urlencode("下载文档");header ( "Content-disposition: attachment; filename=$filename.xls" );
网上说,在RFC2231的定义里面, 多语言编码的Content-Disposition应该这么定义:
Content-Disposition: attachment; filename*="utf8''%E6%B5%8B%E8%AF%95.html"
即:
filename后面的等号之前要加 *
filename的值用单引号分成三段,分别是字符集(utf8)、语言(空)和urlencode过的文件名。
所以这时应该对文件名进行url编码转换 ,使用php的urlencode很轻松就搞定了
$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 . '"');}
关于"PHP附件下载中文名称乱码怎么办"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
文件
中文
文件名
乱码
篇文章
编码
名称
怎么办
附件
更多
标题
不错
实用
也就是
也就是说
先进
先进性
内容
字符
字符集
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
安全计入服务器地址
新乐城软件开发有限公司
北汽软件开发部
现代软件开发代理品牌
挖财记账软件数据库
联想服务器raid怎么还原
软件开发的原因
软件开发的教学视频
围棋电脑软件开发
sql数据库远程复制
专业棋类软件开发
推荐算法是用在数据库的吗
python读写数据库
明日之后不能连接服务器
微信小程序软件开发招聘
网络安全手抄报图片视频
宁波九州互联网络科技有限公司
汽车电子和驱动软件开发
网络安全报名费
云服务器建立访客用户
车位引导管理服务器 捷顺
0成本网络技术代理
dell服务器f2硬盘识别
传感器网络安全协议栈有哪些
海南电力子母钟服务器云主机
数据库应用系统概念
大学生网络安全论文结束语
通过ibm管理口查看服务器故障
java 服务器接口开发
互联网对科技影响力