Serv-U 7.1 版本後引入 UTF-8 編碼支持,但默認啟用 OPTS UTF8 ON 導致中文文件名在傳統 GBK/Big5 客戶端 (如 IE、舊版 FTP 軟件) 顯示亂碼、上傳下載失敗。本文提供徹底禁用 UTF-8 強制兼容舊客戶端的配置方案。
問題現象
- 中文文件名顯示為亂碼 (如
游æ¸.txt)
- 中文文件上傳失敗/下載報錯/無法刪除/重命名
- 目錄列表中文目錄名異常
根因分析
Serv-U 默認協商 UTF-8 編碼 (RFC 2640)。當客戶端不支持 UTF-8 或編碼協商失敗時,文件名在雙方編碼不一致下出現亂碼。傳統中文環境 (Windows XP/2003、IE6/7、FlashFXP 2/3、CuteFTP 5/6) 默認使用系統 ANSI 編碼 (GBK/CP936)。
解決方案:禁用 UTF-8 強制 ANSI 兼容模式
- 打開 Serv-U 管理控制台
- 左側樹選中域 → 右側「限制和設置」標籤 → 「為域配置高級 FTP 命令設置和行為」
- 命令列表中找到 OPTS UTF8 → 右鍵 → 「禁用此命令」
- 點擊下方「全局屬性」按鈕
- 「高級選項」頁籤 → 取消勾選「對所有收發的路徑和文件名使用 UTF-8 編碼」
- 點擊「確定」保存 → 工具欄「應用更改」或重啟服務
配置後效果
- 服務器不再主動協商/強制 UTF-8
- 文件名按系統默認 ANSI 編碼 (中文環境為 GBK) 傳輸
- 傳統客戶端 (IE、舊版 FTP 軟件) 完美兼容中文文件名
- 現代客戶端 (FileZilla、WinSCP、FlashFXP 4+、CuteFTP 8+) 可手動設置編碼為 GBK 正常使用
進階場景:混合編碼環境
若需同時支持 UTF-8 現代客戶端與 ANSI 舊客戶端:
- 保持 UTF-8 啟用
- 客戶端配置:現代客戶端設置「強制 UTF-8」;舊客戶端無法修改則接受亂碼
- 或部署兩個獨立域/端口:
21 (UTF-8) + 2121 (ANSI)
驗證測試
- 上傳中文文件名文件 (如
測試文檔.doc)
- IE 瀏覽器訪問
ftp://server/ 應正常顯示中文
- FTP 客戶端列表、下載、重命名、刪除操作均正常
Serv-U 15+ 版本已大幅改進編碼自動檢測兼容性。若仍遇亂碼,優先嘗試更新至最新版本,再應用本文禁用 UTF-8 方案。