跨浏览器PHP下载文件名中的中文乱码问题解决方法

这篇文章主要介绍了跨浏览器PHP下载文件名中的中文乱码问题解决方法,涉及php针对中文编码的转码技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了跨浏览器PHP下载文件名中的中文乱码问题解决方法,分享给大家供大家参考,具体如下:

  1. <?php
  2. $ua = $_SERVER["HTTP_USER_AGENT"];
  3. $filename = "中文 文件名.txt";
  4. $encoded_filename = urlencode($filename);
  5. $encoded_filename = str_replace("+", "%20", $encoded_filename);
  6. header('Content-Type: application/octet-stream');
  7. if (preg_match("/MSIE/", $ua)) {
  8. header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
  9. } else if (preg_match("/Firefox/", $ua)) {
  10. header('Content-Disposition: attachment; filename*="utf8\'\'' . $filename . '"');
  11. } else {
  12. header('Content-Disposition: attachment; filename="' . $filename . '"');
  13. }
  14. print 'ABC';
  15. ?>