PHP上传中文文件名混沌码的解决方案

可能有很多朋友会遇到的一些问题是上传的文件如果原来的名字是英语是没有问题的,如果是中国可能是乱码,今天让我给你上传的文件名乱码PHP中文乱码的原因及解决方法总结。

XAMPP安装这些天在Windows编写PHP初步研究。这些天,我接触到PHP上传文件,但有一个郁闷的问题。我打算上传一个Excel文件,但是如果文件的名字是中文名,那就错了。

在交流的过程很是郁闷,后来仔细想了想应该是编码问题的文件,我写采用UTF-8编码的PHP文件,如果没有记错GBK应该使用Apache(当然现在我不确定,我希望高手指教)。了解问题,查找相关教程,并找到iconv函数。

函数原型:字符串(字符串in_charset,out_charset iconv字符串,字符串str)

使用例子:$content = iconv(GBK

这个例子的作用是将美元从GBK到UTF-8编码的内容。

无序码问题的关键代码:

复制代码代码如下所示:
$name=iconv (UTF-8
move_uploaded_file(tmpname美元,美元-> final_file_path);
$name = iconv(GB2312


此外,为了解决中文上传文件的问题,我们还可以对上传的文件进行重命名。

例子

复制代码代码如下所示:
sFileName美元=SDA。PHP ;
soriginalfilename美元= $ sFileName;
sextension美元= S($ sFileName,STR(个子($ sFileName ')+ 1)); / /找到扩展
sextension = strtolower美元(美元sextension);
sFileName美元=日期(ymdhis ),伦德(100, 200)。。sextension美元。; / /这是我们的新文件名,所有的数字不乱码。


以下是一些补充:

php上传中文文件名随机码解决方案

复制代码代码如下所示:
美元=上传文件路径 / ;
$name = $ $ 的路径。_files {不管是依靠
而(file_exists($name)){
美元=爆炸($ );
$ $ = $ 0 { }。0。。$ 1 };主文件名加0
}


复制代码代码如下所示:
/ / iconv()函数是关键
如果(move_uploaded_file($ _files {不管是依靠


我的PHP编码是UTF-8,其原因可能是因为操作系统是GBK的原因!

注:我的服务器为Windows XP,Apache,据估计,XP的字符集是GBK。因为我的PHP代码保存为UTF-8格式,它会出现乱码时命名的文件名,所以iconv()函数可以用来将原始的UTF-8格式文件名GBK格式。

解决php utf8随机编码的中文文件名编码

必须有一个在PHP上传功能utf8编码的朋友,都会遇到这样的问题,中国是上传文件的文件名,文件名会变成乱码,我们可以重新编码iconv函数文件名是用来解决问题的。

复制代码代码如下所示:
< PHP
标题(内容类型:文本/ HTML;字符集= UTF-8);
提交_post美元美元= {他们服从真主};
如果(isset($提交)装饰($提交)!=){
文件大小=美元_files {文件};
如果(isset($文件{ 'tmp_name ' })){
$name = iconv('utf-8 ','gb2312,文件{ 'name' }); / /使用iconv函数重新编码的文件名
如果(move_uploaded_file($文件{ 'tmp_name},$name)){
回声文件上传成功!;
回声图片信息;
print_r(文件);
}
}
}
>