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

时间:2015-04-25 07:46:21

标签: php html character-encoding

我制作了一个脚本,用于在我的音乐文件夹(/ musicdir /)中查找和显示音乐。我已经完成了大部分工作,但是当有着奇怪角色的歌曲时我仍然很挣扎。
脚本:http://pastebin.com/uskLNNUz

具有此问题的特定文件名称为:
Clint Mansell - Lux Aeterna(ADЕПТпроddnbremix)2012(promodj.com).mp3

脚本完成后,会吐出这个:
ClintMansell LuxAeterna(AD ??? ??? d dnb remix)2012(promodj.com).mp3

我已经尝试将所有设置都设置为utf-8,但它没有解决任何问题。你需要以特殊的方式使用scandir来包含奇怪的字母吗?我记得当我在我设计的另一个网站上包含我的php中包含这些字符的文件名时,我和æø和å有同样的问题。

有没有什么方法可以确保角色完全通过并且不会被遮挡?

编辑:
由于RamRaider,我现在已经有了工作,但是俄语字符变成问号仍然是一个问题。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,和你一样,尝试了各种方法让它很好地显示并最终使用iconv。您可以尝试以下内容,看看它是否符合您的需求。

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