在用 PHP 写文件下载模块时碰到 Safari 浏览器和 IE 浏览器下载文件时, 文件名出现了乱码问题.
在返回 HTTP Header时指定 Content-Disposition 这个头部信息即可.
$file_name = rawurlencode($contrast_file_name); // 不能使用 urlencode() 函数
$app->response->setRawHeader("Content-Disposition: attachment; filename=" . $file_name . "; filename*=utf-8''" . $file_name);
为什么这么写? 参考这个: https://blog.robotshell.org/2012/deal-with-http-header-encoding-for-file-download/