PHP中文文件名输出乱码解决方法
May 27, 2016 am 08:47 AM在php中碰到中文文件名乱码一般都是初学者了,因为我们一般不会使用中文文名了,因为大家都知道php对中文支持不友好,那么我们要如何解决php中文文件名乱码问题呢?下面小编给各位整理了一些方法,下面一起来看看.
原因是编码问题,所以要转码,用户PHP里面的 iconv 函数就可以解决:
iconv("当前使用的编码如:utf-8","要转换的编码如:GB2312","文件名");
php实例代码如下:
$file_name="我的文件.jpg"; $file_name=iconv("utf-8","gb2312",$file_name); //解决中文乱码问题 echo '$file_name';
登入後複製
例子:
<?php //执行创建中文名html文件 file_put_contents(PHPCMS_PATH.'test/'.iconv('UTF-8', 'GBK', '中文名').'.html', 'xxxxxxxxxxx');
登入後複製
另一种解决中文乱码问题在于,代码如下:
$sFileName = "sda.php"; $sOriginalFileName = $sFileName; $sExtension = s str($sFileName, (strrpos($sFileName, '.') + 1));//找到扩展名 $sExtension = strtolower($sExtension); $sFileName = date("YmdHis").rand(100, 200).".".$sExtension; //这样就是我们的新文件名了,全数字的不会有乱码了。
登入後複製
我们还可以使用urlencode来进行编译,如:urlencode('中文');例子代码如下:
<?php $file = "/tmp/中文名.tar.gz"; $filename = basename($file); header("Content-type: application/octet-stream"); //处理中文文件名 $ua = $_SERVER["HTTP_USER_AGENT"]; $encoded_filename = urlencode($filename); $encoded_filename = str_replace("+", "%20", $encoded_filename); 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-Disposition: attachment; filename="' . $filename . '"'); header("Content-Length: " . filesize($file)); readfile($file);
登入後複製
注意:我的服务器是windows xp、apache,估计xp字符集是gbk,因为我的php代码保存为utf-8格式的,在给文件名命名时会出现乱码的情况,所以可以用iconv()函数将原本的utf-8格式的文件名转换为gbk格式的.
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
兩個點博物館:邦格荒地地點指南
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門工具標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)