尝试使用scandir获取UTF-8文件名时出现问题

时间:2015-03-09 08:14:39

标签: php utf-8 scandir

我的文件名是带格鲁吉亚字母的文件名,例如

  

დიადიგანთიადი。flv。

Scandir无法读取这些文件名,它显示为?????? ??.flv

我尝试过以下方法:

$array = scandir($folder);
foreach ($array as $file) {
    //$file = iconv('WINDOWS-1252', 'UTF-8', $filename);
    //$file = iconv('ISO-8859-1',   'UTF-8', $filename);
    //$file = iconv('ISO-8859-15',  'UTF-8', $filename);
    pr($file);
}

但它们都没有奏效,它仍然像????。我也尝试将标题内容设置为utf-8但没有运气。有什么办法可以使用PHP正确读取这些文件名吗?

我使用的是Windows 8.1。

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,scandir()能够应对 URI百分比编码文件名,那么,就在我的脑海中:

$folder_encoded = rawurlencode($folder);
$array = scandir($folder_encoded);