PHP-php导出excel文件名为中文时在IE中乱码

小组聊天灌水 小组聊天灌水 主题:993 回复:2175

PHP-php导出excel文件名为中文时在IE中乱码

浮生未歇 发布于 2017-09-16 字数 904 浏览 1042 回复 2

可能重复的问题
如何解决多浏览器下载文件中文文件名称乱码?

在FF和chrome下都正常显示中文文件名,只是在IE下会出现乱码,如何解决?

保存文件部分代码如下:

private function set_headers() {
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/octet-stream");
header("Content-Type: application/vnd.ms-excel;charset=UTF-8");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename='中文名.xls'");
header("Content-Transfer-Encoding: binary ");
}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

偏爱自由 2017-10-26 2 楼

<?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';
?>

来源连接

泛泛之交 2017-10-05 1 楼

保存文件的程序代码也需要为utf-8格式,并且如果为ff,需要这样写保存文件名:

 header('Content-Disposition: attachment; filename*="utf8''' . '中文名'. '"');