我们有一个具有波斯名称的文件,例如:
ایران.jpg
我们的问题是php无法通过原始名称复制或重命名此文件, 意思是如果文件名没有完全的英文字符,结果是这样的:
ط§ط´ط±ع©طھ ظ…ظ„غŒ ظ¾ط®ط´ ظپط±ط¢ظˆط±ط¯ظ‡ ظ‡ط§غŒ ظ†ظپطھغŒ-04ط¢ط¨ط§ظ†.jpg
有些文章推荐使用iconv功能,例如:
$fn = iconv("CP-1252", "UTF-8", $file['name']);
我们使用该方法,但解决方案不起作用。
答案 0 :(得分:2)
您需要将正确的字符集指定为iconv,从该字符集转换字符串。像这样:
$fn = iconv("<persian-character-set>", "UTF-8", $file['name']);
您可能希望为输出字符集添加其他选项,如TRANSLINT和/或IGNORE:
$fn = iconv("<persian-character-set>", "UTF-8//TRANSLIT//IGNORE", $file['name']);
有关这些选项的详细信息,请参阅http://php.net/manual/en/function.iconv.php。
答案 1 :(得分:1)
您应该选择正确的代码页。此代码适用于Windows中的阿拉伯语/波斯语名称:
$newname = iconv("UTF-8", "CP1256//IGNORE","گچپژ");
echo rename("1.txt", $newname);
答案 2 :(得分:0)
事实上,我们有从UTF-8到UTF-8的转换,不是很荒谬吗?
$ _FILE ['name']的值是UTF-8,我们尝试将该字符集设置为UTF-8 !!!
我们的问题是我们已经使用utf-8进入了,但是通过未知编码保存了!
我认为Php是一个严重的错误,如果您在Windows操作系统中考虑相反的,活跃的波斯语,并尝试通过PHP(如ایران)通过波斯语字符创建一个文件夹,并使用您认为有效的所有方法! / p>
如果是的话,你做得很好,但是如果......