ホームページ > php教程 > php手册 > PHP中文文件名输出乱码解决方法

PHP中文文件名输出乱码解决方法

WBOY
リリース: 2016-05-27 08:47:45
オリジナル
1934 人が閲覧しました

在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.&#39;test/&#39;.iconv(&#39;UTF-8&#39;, &#39;GBK&#39;, &#39;中文名&#39;).&#39;.html&#39;, &#39;xxxxxxxxxxx&#39;);
ログイン後にコピー

另一种解决中文乱码问题在于,代码如下:

$sFileName = "sda.php"; 
$sOriginalFileName = $sFileName; 
$sExtension = s str($sFileName, (strrpos($sFileName, &#39;.&#39;) + 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(&#39;Content-Disposition: attachment; filename="&#39; . $encoded_filename . &#39;"&#39;);
} else if (preg_match("/Firefox/", $ua)) {
    header("Content-Disposition: attachment; filename*=\"utf8\"" . $filename . &#39;"&#39;);
} else {
    header(&#39;Content-Disposition: attachment; filename="&#39; . $filename . &#39;"&#39;);
}
header(&#39;Content-Disposition: attachment; filename="&#39; . $filename . &#39;"&#39;);
header("Content-Length: " . filesize($file));
readfile($file);
ログイン後にコピー

注意:我的服务器是windows xp、apache,估计xp字符集是gbk,因为我的php代码保存为utf-8格式的,在给文件名命名时会出现乱码的情况,所以可以用iconv()函数将原本的utf-8格式的文件名转换为gbk格式的.


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート