无法从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";
}
所以,例如,我有一个名为“10Hörtauf.mp3”的文件,但作为输出我得到“10 Hort auf.mp3”
我该如何解决?
答案 0 :(得分:0)
由于PHP在WinAPI下运行而没有合理的UTF-8支持,因此无法解决此错误。
答案 1 :(得分:0)
您可以使用iconv功能轻松完成。 Windows示例:
iconv("WINDOWS-1250", "UTF-8", $name);