IIS 5.0/6.0 在處理中文檔名下載時存在已知 Bug:**檔名為 2 或 4 個中文字元時無法下載**,1、3、5 個字元則正常。根因在於 URL 掃描邏輯對 DBCS (雙位元組字元集) 邊界判斷錯誤。解決方法為修改註冊表關閉 DBCS 優化,或客戶端 IE 關閉「總是以 UTF-8 發送 URL」。
| 檔名 | 中文字元數 | 下載結果 |
|---|---|---|
中.doc | 1 | ✅ 正常 |
中文.doc | 2 | ❌ 失敗 (404/找不到檔案) |
中文檔.doc | 3 | ✅ 正常 |
中文檔案.doc | 4 | ❌ 失敗 |
中文檔案名.doc | 5 | ✅ 正常 |
regedit。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Inetinfo\Parameters\FavorDbcs0 (預設為 1 啟用)iisreset 或服務管理員重啟「WWW 發布服務」。原理:FavorDbcs=1 讓 IIS 優先嘗試將 URL 解釋為 DBCS 字元序列,導致 2/4 字元時邊界計算錯誤;設為 0 強制使用標準 UTF-8/ANSI 路徑解析。
此設定讓 IE 以系統預設代碼頁 (CP950/Big5) 發送 URL,繞過伺服器端 DBCS 解析邏輯。
修復後重新嘗試下載 2/4 中文字元檔名,應可正常下載並提示正確檔名。
FavorDbcs=0,可能導致其他 URL 解析異常。Content-Disposition: attachment; filename*=UTF-8''%E4%B8%AD%E6%96%87.doc (RFC 5987) 指定中文檔名,徹底規避編碼問題。針對舊版 IIS 環境,註冊表修改 FavorDbcs=0 為最直接有效的伺服器端修復。