首先想到的就是dos輸出是用系統的默認編碼(gbk)的,我文件可是使用UTF-8編寫的,肯定會出亂碼樓。當時的想法就是在批處理文件中手動設置臨時編碼來進行輸出,可是對這塊不了解,百度吧,關鍵字:dos中設置編碼,結果還真的有人遇到了這樣的問題,不過是在做PHP項目中出現的,但是我也一樣可以借用,呵呵。原來系統會有很多的字體代碼的,在執行批處理前設置一下就OK了,命令如下:
chcp 65001 問題就解決了,65001是UTF-8的代碼頁,其他如下:
MS-DOS為以下國家和語言提供字符集:代碼頁描述
936 簡體中文(默認)
950 繁體中文
65001 UTF-8
1258 越南語
1257 波羅的語
1256 阿拉伯語
1255 希伯來語
1254 土耳其語
1253 希臘語
1252 拉丁 1 字符 (ANSI)
1251 西里爾語
1250 中歐語言
949 朝鮮語
932 日語
874 泰國語
850 多語種 (MS-DOS Latin1)
437 MS-DOS 美國英語
以上就是本次編寫批處理命令中遇到的比較特殊的問題,以此記錄,以備后用。
注:編寫的批處理命令我在頂端空出來一行,才能使 chcp 65001 生效,這應該是和UTF-8文件有無BOM編碼格式有關,我選擇的是UTF-8有BOM編碼格式保存的文件。