5

无法从 Windows 文件系统读取 UTF-8 文件名(主要 Windows 语言为英语)

<?php

$path_to_read = 'D:\music';

class AudioFilterIterator extends FilterIterator
{
    public function accept()
    {
        return (strpos(parent::current(), '.mp3'));
    }
}

$object = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path_to_read));

$iterator = new AudioFilterIterator($object);

echo "<pre>";

$files = array();

foreach($iterator as $file)
{
    echo $file . "\n";
}

因此,例如,我有一个名为“10 Hort auf.mp3”的文件,但作为输出我得到“10 Hort auf.mp3”

我该如何解决?

4

2 回答 2

0

由于 PHP 在 WinAPI 下工作,没有合理的 UTF-8 支持,因此无法解决这个错误。

于 2013-03-29T07:00:36.257 回答
0

您可以使用 iconv 函数轻松完成此操作。窗户示例:

iconv("WINDOWS-1250", "UTF-8", $name);
于 2015-02-10T18:21:55.723 回答