批處理中文亂碼bat腳本中文亂碼解決方法
使用中文Windows操作系統(tǒng)時,可以使用批處理來幫我們完成一些任務。為了了解批處理的執(zhí)行過程,在編寫批處理時還可以加上一些中文輸出信息。不過有些時候,批處理輸出的這些中文會出現(xiàn)中文亂碼的現(xiàn)象。
批處理出現(xiàn)中文亂碼的原因:
批處理是在cmd命令提示符中運行的。中文語言Windows系統(tǒng)中,cmd默認使用936代碼頁,說白了就是使用GBK編碼。
我們創(chuàng)建批處理文件也就是bat腳本時,都是先使用記事本先創(chuàng)建txt文檔,在txt文檔中創(chuàng)建代碼并保存,然后將擴展名.txt更改為.bat。而記事本默認使用65001代碼頁,也就是使用UTF-8編碼。
由于兩者編碼不一致,從而導致批處理中出現(xiàn)中文亂碼。
批處理出現(xiàn)中文亂碼的解決方法:
既然是編碼不一致導致的問題,那么問題解決方法就簡單了,想辦法讓它們編碼一致問題就能解決。下面提供幾種常用的解決方法。
方法一、將批處理腳本編碼改為GBK
創(chuàng)建txt文檔,創(chuàng)建代碼后,選擇“文件 -> 另存為”,編碼選擇“ANSI”,保存。
或者用記事本打開bat腳本,然后選擇“文件 -> 另存為”,編碼選擇“ANSI”,保存。
方法二、聲明以UTF-8編碼運行批處理
在腳本開頭位置加入“chcp 65001”這行命令,文件是UTF-8編碼,在cmd中也以UTF-8編碼運行批處理。
方法三、修改cmd配置,讓cmd默認以UTF-8編碼。
cmd啟動時會讀取注冊表中的一些配置,我們可以通過注冊表中的兩個位置中的一個來實現(xiàn)。
1、HKEY_LOCAL_MACHINE
1) 按快捷鍵“Windows+R”打開運行,在運行中輸入“regedit”,并點擊“確定”打開注冊表編輯器。
2) 在注冊表編輯器中,打開以下位置:
計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
3) 選擇Command Processor注冊表項后,在右側區(qū)域空白處,右鍵 -> 新建 ->字符串值,并命名為“Autorun”。
4) 雙擊Autorun,將數(shù)值數(shù)據(jù)設置為“chcp 65001”,并點擊“確定”。
5) 運行批處理,中文正常顯示。
2、HKEY_CURRENT_USER
1) 按快捷鍵“Windows+R”打開運行,在運行中輸入“regedit”,并點擊“確定”打開注冊表編輯器。
2) 在注冊表編輯器中,打開以下位置:
計算機\HKEY_CURRENT_USER\Console
3) 選擇Console注冊表項后,在右側區(qū)域空白處,右鍵 -> 新建 ->項,并命名為“%SystemRoot%_system32_cmd.exe”。
4) 選擇%SystemRoot%_system32_cmd.exe注冊表項,在右側區(qū)域空白處,右鍵 -> 新建 ->DWORD (32位)值,并命名為“CodePage”。
5) 雙擊CodePage,將基數(shù)設置為“十進制”,數(shù)值數(shù)據(jù)設置為“chcp 65001”,并點擊“確定”。
6) 運行批處理,中文正常顯示。
注意:只需要修改其中的一個即可,兩個同時修改會導致批處理運行出錯。
這里給大家分享了三種批處理中文亂碼bat腳本中文亂碼解決方法。需要注意的是方法三,方法三中其實包含了兩種方法,而且這兩種方法不能同時使用,選擇其中一種即可,千萬注意。大家如果遇到問題,可以根據(jù)自己的情況,選擇文章中最合適的一種方法解決問題。