簡言之;PHP的unlink()非ASCII字符=找不到文件
PHP取消鏈接與文件工作,如果他們的名字是ASCI。但是取消鏈接產生的文件未找到錯誤,如果我嘗試刪除與包括文件名的文件C 0等
有什麼辦法,我可以解決這一問題?或者它是由PHP &操作系統之間的關係引起的問題。
簡言之;PHP的unlink()非ASCII字符=找不到文件
PHP取消鏈接與文件工作,如果他們的名字是ASCI。但是取消鏈接產生的文件未找到錯誤,如果我嘗試刪除與包括文件名的文件C 0等
有什麼辦法,我可以解決這一問題?或者它是由PHP &操作系統之間的關係引起的問題。
這是最終的編碼問題。
試試這個(如果 './çö' 不是UTF-8,動態地加載爲例):
unlink(mb_convert_encoding('./çö', 'UTF-8'))
也許你正在使用Windows?從here:
unlink(iconv('utf-8', 'cp1252', './çö'));
無論如何:你應該避免這些文件名。如果它來自用戶:絕不信任用戶輸入!
的「locale」輸出,所以我應該根據os讀寫文件名。 。我應該使用代碼頁轉換將bin數據轉換爲編碼字符串? – user2102266 2014-08-28 00:30:38
@ user2102266從未在文件名中看到過UTF-8符號。你應該避免它。不明白你的意思與第二部分。 – 2014-08-28 00:35:10
是都工作。 '取消鏈接(mb_convert_encoding('./çö','UTF-8'))'燈。 '取消鏈接(iconv('utf-8','cp1252','./çö'));'爲wamp。謝謝 – user2102266 2014-08-29 04:34:40
你能發佈你正在嘗試的代碼嗎? – 2014-08-27 22:18:45
看起來像一個編碼問題,即您在ISO-8559-1中傳遞文件名,但名稱在操作系統中是UTF-8。 – nalply 2014-08-27 22:19:03
如果服務器是debian-like,請提供我們來自控制檯 – avall 2014-08-27 22:21:53