您在這裡

請問各位先進有碰過上傳中文檔名的問題嗎?

nickyeoctw's 的頭像
nickyeoctw 在 2008-09-23 (二) 00:00 發表

請問各位先進有碰過上傳中文檔名的問題嗎?

平台為 Windows 2003 server + AppServ

上傳後會網頁解析錯誤,非上傳中的傳輸問題。
謝謝!

我之前開發由 server 端動態將許多 PDF 檔案產生壓縮檔
再用 header 輸出壓縮檔 讓使用者下載檔案
結果發現下載的壓縮檔 使用中文檔名的話都會變成亂碼
壓縮檔內的 PDF 也是同樣的狀況

後來發現是因為 server 端是使用 UFT-8 編碼
但是在 win XP 中文的編碼是用 BIG5
所以會造成下載之後的檔名會變成亂碼
上傳檔案的時候就變成相反的情況

後來是在產生檔案的時候
先把中文檔名轉成 BIG5 編碼
在主機上面看檔名是亂碼
使用者下載就會變成正常的中文檔名

我猜想
在 Windows 2003 server + AppServ 的環境底下
使用者編碼是 BIG5
Windows 2003 server 的編碼應該也是 BIG5
但是 AppServ , PHP, Drupal 中間這一段在處理檔案的時候可能有的是使用 UTF-8 編碼來處理
所以可能中間的過程 檔名就變成亂碼
亂碼的字串也許會讓 php 執行錯誤或是 Windows 2003 server 不接受該檔名
你可能要用 php 測試在 Windows 2003 server 本機端儲存中文檔名是否正常
以及檢查 php 接收使用者上傳中文檔名的編碼狀況