2008年9月1日 星期一

Windows下PHP的move_uploaded_file()無法正確處理UTF-8檔名

今天學長遇到的問題

在WindowsXP + Apache 2.2.6 + PHP 5.2.4 的環境下
上傳檔案一直卡在move_uploaded_file()會出問題
大致的情況是就是寫進檔案系統的檔名永遠都是亂碼
於是就猜測是utf-8的問題,試了一下後發現用iconv轉成Big5就沒事
其他諸如utf-* / ucs-* 一系列全都不行

PTT的php板(#16oaYO8V)有人提出過,google一下有不少人也遇到這個問題
共通性似乎都是在windows上面才會碰到

FreeBSD上面,自己測試過似乎是沒問題,UTF-8檔名有正確的寫進去

1 意見:

CornGuo 提到...

我在 Windows 底下是用 mb_convert_encoding 去轉碼..

iconv 有時候會有些東西轉不過去 @@