彻底解决跨浏览器下PHP下载文件名中的中文乱码问题
生活随笔
收集整理的這篇文章主要介紹了
彻底解决跨浏览器下PHP下载文件名中的中文乱码问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<?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';
?>
上面是一個比較通用的解決方案(據說xp+IE7會有問題,未驗證)。
這個問題是在使用CI-Excel-Generation-Library時遇到的,解決辦法如下:
private function set_headers() {$ua = $_SERVER["HTTP_USER_AGENT"];$filename = $this->filename . ".xls";$encoded_filename = urlencode($filename);$encoded_filename = str_replace("+", "%20", $encoded_filename); 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");;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 . '"');}header("Content-Transfer-Encoding: binary ");}?
轉載于:https://www.cnblogs.com/jiji262/archive/2012/09/21/2697205.html
總結
以上是生活随笔為你收集整理的彻底解决跨浏览器下PHP下载文件名中的中文乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu 2896 病毒侵袭
- 下一篇: phpmyadmin 安装 配置