如何在使用php扫描文件时处理外来字符?

如何在使用php扫描文件时处理外来字符?,php,html,character-encoding,Php,Html,Character Encoding,我制作了一个脚本,用于在我的音乐文件夹/musicdir/中查找和显示音乐。我已经解决了大部分问题,但是当我看到那些有奇怪角色的歌曲时,我仍然很挣扎。 脚本: 有此问题的特定文件名为:Clint Mansell–Lux AeternaADППθПППСd dnb remix2012 promotdj.com.mp3 脚本完成后,会显示以下内容: 克林特·曼塞尔� 勒克斯埃特纳德酒店???d dnb remix2012 promotdj.com.mp3 我已经试着将所有我能设置的设置为utf-8,

我制作了一个脚本,用于在我的音乐文件夹/musicdir/中查找和显示音乐。我已经解决了大部分问题,但是当我看到那些有奇怪角色的歌曲时,我仍然很挣扎。 脚本: 有此问题的特定文件名为:Clint Mansell–Lux AeternaADППθПППСd dnb remix2012 promotdj.com.mp3 脚本完成后,会显示以下内容: 克林特·曼塞尔� 勒克斯埃特纳德酒店???d dnb remix2012 promotdj.com.mp3 我已经试着将所有我能设置的设置为utf-8,但它没有解决任何问题。你需要用特殊的方式使用scandir来包含奇怪的字母吗?我记得在我设计的另一个网站上,当我在php中包含包含这些字符的文件名时,我对æø和å也有同样的问题。 有没有办法确保角色一路走过,不被遮挡? 编辑:
多亏了RamRaider,我现在已经开始工作了,但是俄语角色变成问号仍然是一个问题。

我遇到了类似的问题,和你一样,尝试了各种方法让它很好地显示出来,最后使用了iconv。您可以尝试以下方法,看看它是否满足您的需要

        $value='Clint Mansell – Lux Aeterna(ADЕПТ проd dnb remix)2012 (promodj.com).mp3';
        echo iconv( mb_detect_encoding( $value ), 'ASCII//IGNORE', $value );

不幸的是,它没有起作用。我设法使用$file=iconv'cp1252','utf-8',$file;让它与包含å,ø,æ的文件名一起工作,但对于俄文文件名仍然没有运气。