您的位置:首页 > 编程语言 > PHP开发

php 文件上传出现乱码问题

2016-07-09 11:06 585 查看
我们知道,在文件上传时,如果没有什么修改,服务器保存附件名字就是文件本身的名字,但有时我们上传附件完毕后,到指定的目录查看上传完成的附件时却发现附件名字出现了乱码?怎么解决这种现象呢?

其实很简单,我们来看看其原理是怎么样的:

首先我们看文件上传流程:

本地文件--------->上传(php程序处理)---------->服务器

本地文件名字的字符集为gb2312(通常简体中文windows采用GB2312,极个别文本字符采用utf-8字符集)

php程序的字符集utf8

服务器的字符集 gb2312

这明显信息交互显示时字符集不一致,这也是为什么会出现乱码的原因所在

解决:

我们只需要在php程序里面吧utf-8编码的附件名字 转换为 gb2312就行了,如:

$name = $_FILES['user_pic']['name'];

$name = iconv('utf-8','GB2312',$name); // $name的字符编码由utf-8 变为 gb2312;

然后后面该干嘛干嘛

这样再查看上传的附件时文件名就可以正常显示了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: