我正在尝试使用 php 代码上传具有阿拉伯名称的文件
echo move_uploaded_file($_FILES["uploadfile"]["tmp_name"],"images/artimgs/".$_FILES["uploadfile"]["name"]);
但是上传文件时“artimgs”文件夹中的文件名如下所示:طط³ط§ظ†.jpg
我希望上传后的文件与初始文件的阿拉伯语名称相同。
在上传文件之前,我尝试对文件名进行编码,如下所示:$imgn=utf8_encode($_FILES["uploadfile"]["name"]);
$imgtmp=utf8_encode($_FILES["uploadfile"]["tmp_name"]);
echo move_uploaded_file($imgtmp,"images/artimgs/".$imgn);
但我有同样的结果
这可能会有所帮助:
/* PHP Internal Encoding */
define('PHP_ENC', 'UTF-8');
mb_internal_encoding(PHP_ENC);
ini_set('default_charset', PHP_ENC);
按原样回答您的问题:
可以查看表单页面编码,可能是windows-1256,提交表单的页面和显示文件名的页面都必须是utf-8。
说出我对代码的看法:
您可以按照 [Marc B] 的建议指定自己的文件名。