Home ShuenKei Blog

2023年9月21日星期四

chcp 65001(下)

上文提要想把全級學生的相片檔案名稱,由 學生編號.jpg 轉成 班號學號.jpg,以 Excel 做 batch 檔執行,五分鐘就可完成。但我很想把它們都做成帶中文名的檔名(例如︰6B19張小文.jpg),試算表只是加多一項,但在 bat 檔一按,中文字便變成一片亂碼,看來 CMD 不太懂得中文呢!

首先想的的,是編碼的問題。用記事本查看一下中,發覺是 UTF-8 沒有錯,Windows 的中文很早就用用了統一碼吧。想改用 Big5(大五碼,以前的繁體中文編碼)試試,但原來記事本沒有這個選項呢。

於是開始向谷歌大神求助,這問題肯定有千萬人遇過吧!輸入過以下的關鍵字︰

12:26  batch file rename chinese file name strange code
12:32  batch file rename chinese file name
12:34  batch file rename file name chinese
12:35  
batch file Renaming files with asian characters strange code
12:45  batch file Renaming files with chinese characters strange code

看了一大堆網頁,竟然找不到解決方法呢!帶著沮喪的心情,問我的 TSS 技術同事,可有經歷這個困難。他看了一看,第一個建議是把 Dos prompt 中我用 command "rename",改成較大路的 "ren" 試試,這我知道,是兩個通用的,所以沒有幫助。

然後他在手機裡找了一會,給了我一個中文網站︰「試試在 batch file 的開首,加入這指令︰chcp 65001,讓 CMD 環境轉成了 UTF-8,就可以了。」結果是一舉成功,立即產生了漂亮的中文檔名。

交貨之後,我才忽然發現,自己找中文字的問題,怎樣總死往英文網頁裡搜尋呢?當時是固執得可笑,事後再用谷歌查︰

13:11  cmd 批次改中文檔名

果然佈滿了解決方法,是對當局者離奇英文執迷的一個諷刺吧。在交貨之「後後」,我再向 AI 查詢︰

13:14  在windows 以cmd 用 batch 檔改檔案名,中文檔名會出現亂碼,如何解決?


它在秒間已提供了四個方案,第一個就是 chcp 了。然後在交貨之後後後,我不死心,用記事本把 batch 檔另存做 ansi 編碼(一種更原始的編碼),結果也是「像魅力一樣工作」(Work like a charm)。

這故事下篇的教訓,是辦法總比困難多,人工智能勝谷歌。

沒有留言:

發佈留言