FTP 傳上來的檔名變亂碼

通常我們都會用 XP 的 “檔案總管” 或 “IE” 直接登入 FTP 上傳或瀏覽 FTP的內容 , 但經常會發現傳上來的檔案會變成亂碼 , 怎麼辦 ?

這是因為 charset 支援的問題 , 因為 “檔案總管” 並沒有支援 UTF-8 , 但某些 FTP client 偏偏會自動支援 UTF-8 , 這會造成上傳和看的人使用不同的 , 也就會產生所謂的 “亂碼”

DomLinux III 目前現行使用中的 FTP server 有兩種版本 , 一種是有支援 UTF-8 , 另一種是不支援 UTF-8

要知道目前使用的 ftp 是不是支援 UTF-8 , 你可以用以下的測試方式

開一個cmd視窗 , 用 ftp 指令直接連線你的 ftp server , 觀察 proftp 的版本

P2009070615190056

如果是 1.3.0 , 表示是不支援 UTF-8 , 如果是 1.3.2rc3 表示支援 UTF-8 (目前只有少數的用戶是 1.3.2rc3版)

我們假設 你的版本是 1.3.2rc3 (支援  utf-8) , 某個客戶用 IE 上傳檔案 , 因為 IE 並不支援上傳 UTF-8 , 所以當檔名有中文時會用 big5編碼 , 如果你用有支援 utf-8 的 ftp 軟體 , 例如  filezilla , 一般這類的 ftp client 如果沒有特別指定 , 都會 “自動” 辨識 server 是否支援 UTF-8 , 而自動切換 , 這樣反而會造成看到亂碼 .

講了這些你一定看了  “霧沙沙” , 這了我們這樣建議 , 如果你發現 客戶傳來的  ftp 中文檔案你看到都是 亂碼 , 你需要先看看你的ftp版本(上面的方法) , 如果是 1.3.2 rc3 , 建議你下載 1.3.0 的套件 , 由 [系統設定]->[系統更新更新] 手動更換這個套件

這樣你的  ftp server 就不會支援 utf-8 . 這樣不管 client 或 server 都只限定用一種 “語言” , 這樣大家都不會搞錯 , 不過如果你的客戶上傳的檔名如果可能有多種編碼 (例如  A 客戶用繁體big5, B 客戶用 簡體 GB碼 ) , 如果上傳在不同的目錄還無所謂 , 如果是放在同一個目錄 , 這樣一定會有一種是以亂碼表現 , 這樣的狀況我們會建議你用 1.3.2 的版本 .

另外如果你也希望 ftp 的檔案也能用 “網路芳鄰” 來看 , 而不會出現 “亂碼” ,  建議可以把 其他伺服器->網路芳鄰伺服器 檔名編碼格式 , 也改成 big5

P2009070615400057