同事報案,測試網頁上傳檔遇到中文檔名上傳變英文的怪事,仔細檢查後有了驚奇發現。檔案來自 Windows 內建範例圖片(C:\Users\Public\Pictures\Sample Pictures),檔名原本是英文,但檔案總管顯示的卻是中文檔名,因此選取檔案上傳時產生「自己正在上傳中文檔名圖檔」的錯覺。對照檔案總管與 DIR 結果,可看出明顯差異,「測試.jpg」複製自「菊花.jpg」再改中文檔名,DIR 清單除了「測試.jpg」之外,其餘全是英文檔名;檔案總管看到的 9 個檔案則都是中文檔名。

原以為這是 Windows 顯示時以 JPG 檔標題屬性取代檔名之類的把戲,但搜查無所獲。福至心靈,想起一個東西 - 系統隱藏檔 desktop.ini。

答案揭曉:Users\Public\Pictures\desktop.ini 裡有段 LocalizedFileName 設定,定義各圖檔對應的多語系檔名。換句話說,在不同語系的 Windows 檢視這個資料夾,檔名將會翻譯成當地語言版本。

使用 Windows 這麼多年,以往只知 Desktop.ini 可用來儲存資料夾的自訂圖示,沒想到還有此功用。而我這也恍然大悟,使用者個人資料夾下的 Documents、Music 在檔案總管會變成「我的文件」、「我的音樂」也是這麼來的,將資料夾內的 desktop.ini 刪除便會打回原形,恢復英文資料夾名稱。又學到新東西。

附上我找到的 desktop.ini 設定介紹 - Desktop.ini Documentation

Discovery of the secret how Windows s localized file names under my picture folder.


Comments

Be the first to post a comment

Post a comment