具有特殊字符的PHP索引文件

具有特殊字符的PHP索引文件,php,character-encoding,special-characters,Php,Character Encoding,Special Characters,我正在尝试使用PHP和MySQL组织我的音乐收藏。我正在使用php列出音乐目录中的所有文件,并将这些信息存储在MySQL数据库中。对于大多数文件,它都可以正常工作,但有些文件名最终是这样的: 当前情况: Mai^tre Gims-J'me tire.mp3 红色灯光。mp3 Ma°ns Zelmerlo–w-Heroes.mp3 我相信这些被称为“组合字符”,字符旨在修改其他字符 很明显,我想把这些角色组合起来: 通缉情况: Maître Gims-J'me tire.mp3 红色灯光。mp3

我正在尝试使用PHP和MySQL组织我的音乐收藏。我正在使用php列出音乐目录中的所有文件,并将这些信息存储在MySQL数据库中。对于大多数文件,它都可以正常工作,但有些文件名最终是这样的:

当前情况:
Mai^tre Gims-J'me tire.mp3
红色灯光。mp3
Ma°ns Zelmerlo–w-Heroes.mp3

我相信这些被称为“组合字符”,字符旨在修改其他字符

很明显,我想把这些角色组合起来:

通缉情况:
Maître Gims-J'me tire.mp3
红色灯光。mp3
Måns Zelmerlo̊w-Heroes.mp3

这是我正在使用的测试代码:

$path = 'D:\Music';

foreach (new DirectoryIterator($path) as $fileInfo) {
    if($fileInfo->isDot()) continue;

    $filename = utf8_encode($fileInfo->getFilename());
    echo $filename . "<br>\n";
}
$path='D:\Music';
foreach(新的DirectoryIterator($path)作为$fileInfo){
如果($fileInfo->isDot())继续;
$filename=utf8_编码($fileInfo->getFilename());
回显$filename。“
\n”; }
如果没有utf8_encode(),我会得到问号:�
我的网页中的标题设置为UTF-8

我尝试过不同的函数,如iconv()mb\u convert\u encoding()


有人知道我如何从当前的文件名到想要的文件名吗?

文件名实际上是什么样子的:mai^tre还是maître?…文件名看起来像maître,所以看起来很正确。但是,它们可能是在给定文件名时键入的mai^tre…不,它们可能是键入ma^itre,而不是mai^tre…您可能需要查看一下(如果尚未完成)!