php中文传到后台乱码的解决方法
这篇文章主要为大家展示了"php中文传到后台乱码的解决方法",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"php中文传到后台乱码的解决方法"这篇文章吧。
php中文传到后台乱码的解决办法:1、使用"iconv('UTF-8', 'GB2312//IGNORE', $targetFile);";2、使用"move_uploaded_file($tempFile, $targetFile);"。
本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。
php文件上传后台存储中文乱码问题解决方案:
php文件上传后台处理讲解:
用户上传文件后(前端我用的是uploadify2.3),我希望按照它原有的文件名保存(有时是中文),只用php的move_uploaded_file命令会出现乱码(我是ubuntu的服务器)。需要先用icotargetFile=iconv(′UTF−8′,′GB2312//IGNORE′,targetFile);不加IGNORE的话iconv会对- (横杠)这一字符转换失败,并且后面自动截断。例如:
iconv('UTF-8', 'GB2312//IGNORE', "博客-yet"); // 输出"博客yet"iconv('UTF-8', 'GB2312//IGNORE', "博客-yet"); // 输出"博客"
所以正确的存储方法是:
$targetFile = iconv('UTF-8', 'GB2312//IGNORE', $targetFile); // UTF8转GB2312move_uploaded_file($tempFile, $targetFile); // 服务器把文件暂时放在$tempFile
因为转码会损失字符,我们需要将新文件名保存,为了确定到底那些字符丢失,我使用了这样来回转换的trick:
$targetFile = iconv('GB2312', 'UTF-8//IGNORE', $targetFile );
php文件下载后台处理讲解:
其中何时使用GB2312,何时UTF8很重要。
此外ob_clean()和flush()是下载来的文件是否乱码的关键
下面是我搭配uploadify 2.3使用的文件上传后端文件,仅供参考:
以上是"php中文传到后台乱码的解决方法"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!