具有特殊字符的PHP索引文件
我正在尝试使用PHP和MySQL组织我的音乐收藏。我正在使用php列出音乐目录中的所有文件,并将这些信息存储在MySQL数据库中。对于大多数文件,它都可以正常工作,但有些文件名最终是这样的: 当前情况:具有特殊字符的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
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…您可能需要查看一下(如果尚未完成)!