主题:php 文件中文文件名乱码的解决方法
时间: 2020-08-27来源:ITEYE
前景提要
相关推荐: gb2312编码转化utf8的输出不正常 用ruby实现简体中文和繁体中文的相互转化 被rails文件上传文件名搞疯了,实在没法来! PHP中文乱码解决办法 php读取目录中文文件名乱码解决方法 PHP导出文件名乱码解决 PHP 生成中文文件名乱码 解决php保存文件时文件名乱码问题 PHP解决文件名乱码问题
推荐群组: D语言
更多相关推荐
PHP 想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,其实我们可以用iconv函数对文件名进行重新编码就解决问题了php文件 http://www.lampbrother.net/ 使用的是UTF-8编码,如果没有猜错APACHE处理用的应该是GBK。想明白了这个问题,就去查找相关的教程了,索性找到了iconv这个函数。函数原型:string iconv ( string in_charset, string out_charset, string str ) 使用例子:$content = iconv(“GBK”, “UTF-8”, $content); 这个例子的作用就是将$content从GBK转换成UTF-8编码。 乱码问题关键代码: 复制代码 代码如下: $name=iconv("UTF-8","gb2312", $name); 除了这样来解决上传文件中文乱码问题,我们还可以把上传文件重新命名即可。 例 复制代码 代码如下: $sFileName = “sda.php”; $sOriginalFileName = $sFileName; $sExtension = s str($sFileName, (strrpos($sFileName, ‘.’) + 1));//找到扩展名 $sExtension = strtolower($sExtension); $sFileName = date(“YmdHis”).rand(100, 200).”.”.$sExtension; //这样就是我们的新文件名了,全数字的不会有乱码了哦。 以下是一些补充: php上传中文文件名乱码解决方案 复制代码 代码如下: $filepath=”upload/”; $name=$filepath.$_FILES[“upfile”][“name”]; while(file_exists($name)){ $temp=explode(“.”,$name);//分割字符串 $name=$temp[0].”0″.”.”.$temp[1];//主文件名后面加0 } 复制代码 代码如下: //iconv()函数是关键 if(move_uploaded_file($_FILES[“upfile”][“tmp_name”],iconv(“UTF-8″,”gb2312”,$name))){//处理…} 我的PHP编码是UTF-8,其中原因可能是因为操作系统是GBK的原因! 注意:我的服务器是windows xp、apache,估计xp字符集是gbk。因为我的php代码保存为utf-8格式的,在给文件名命名时会出现乱码的情况,所以可以用iconv()函数将原本的utf-8格式的文件名转换为gbk格式的。 php utf8编码 上传中文文件名出现乱码的解决方法 想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,我们可以用iconv函数对文件名进行重新编码就解决问题了。 复制代码 代码如下: header("Content-Type:text/html;charset=utf-8"); $submit = $_POST['submit']; if(isset($submit) && trim($submit) != ''){ $file = $_FILES['file']; if(isset($file['tmp_name'])){ $name = iconv('utf-8','gb2312',$file['name']); //利用Iconv函数对文件名进行重新编码 if(move_uploaded_file($file['tmp_name'],$name)){ echo '文件上传成功!'; echo '图片信息:'; print_r($file); } } }

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行