时间:2021-05-26
本文实例讲述了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程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
目前有很多企业已经充分认识注册网站中文名称的重要性了,并且为了让网站中文名称更具辨识度,一些企业还会找专业的网站名称注册公司来帮助自己。那么到底如何定义网站名称
1、WAPI是一种安全协议,英文全称为WirelessLANAuthenticationandPrivacyInfrastructure,中文名称为【无线局
/*value:值;byteLength:数据库字节长度title:字段中文名称attribute:属性名称使用方法说明:添加(1)onkeyup="limit
电脑升级IE11后,点击下载文件,下方会显示是否保存文件的选项,出现了文件的中文名变成乱码的情况,针对该问题,下面列出解决方法的详细图文步骤。1、按Win+R键
php技术。PHP是HypertetPreprocessor的缩写,中文名称为超文本预处理器,是一种Web编程语言,语法结构类似于C语言,因其学习难度小,开发效