2011-09-21 56 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