2011-09-21 52 views
5

似乎PHP中的文件处理不支持某些字符(例如€)编码UTF-8 如果路径是硬编码并且php文件保存为UTF- 8。使用UTF-8特殊字符处理PHP文件

它可以使它与所有(或大多数西方人物)工作?有没有可能的图书馆?因为我找不到任何东西。

例如,一个名为äöü&()éèàâêûô@$+ç%&=!的文件夹在Windows中不能与is_dir()一起使用。

编辑:解

好吧,我已经找到了解决办法。我还没有完全测试它,我不确定它是否是万无一失的,我不知道这是否是最好的做法,但将字符串编码回ANSI看起来有效(至少对于我发布的字符串)。

$string = iconv(mb_detect_encoding($string, "auto"), 'Windows-1252', $string); 

我想这应该适用于大多数西方Windows计算机的默认设置。

回答

0

我也拒绝使用这样的文件夹! :-)
笑话不同,你可能会尝试将文件保存为UTF-16,因为这应该是Windows在内部使用的编码。

+1

嗨。感谢您的答复。你给了我一个主意。我试着用类似'$ string = iconv(mb_detect_encoding($ string,“auto”),'Windows-1252',$ string)的方式将它编码回ANSI,'这似乎是个窍门。我还没有完全测试它,但对我发布的字符串(现在)有效。 – huuerequer