濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > 解決bat批處理輸出亂碼的問題

解決bat批處理輸出亂碼的問題

熱門標(biāo)簽:菏澤電銷外呼系統(tǒng)軟件 蘇丹地圖標(biāo)注app 為什么申請(qǐng)400電話 貴陽電話外呼系統(tǒng)廠家 外呼系統(tǒng)解決電銷問題 地圖標(biāo)注店鋪的收費(fèi) 南陽高頻外呼系統(tǒng)怎么安裝 高德百度地圖標(biāo)注推廣 京東辦理400電話查詢

亂碼原因

Windows的cmd.exe默認(rèn)編碼格式為ANSI
簡(jiǎn)體中文版的Windows, 其ANSI對(duì)應(yīng)微軟Codepage為cp936
大致等同于GBK編碼

如果你的bat文件是UTF-8編碼的, 或者是是其他Codepage下創(chuàng)建的, 比如
Windows日語版下創(chuàng)建的bat文件, 保存為ANSI編碼時(shí)對(duì)應(yīng)cp932, 即Shift-JIS編碼
Windows繁體中文版下創(chuàng)建的bat文件, 保存為ANSI編碼時(shí)對(duì)應(yīng)cp950, 即Big5編碼

當(dāng)bat文件編碼與當(dāng)前cmd環(huán)境不一致時(shí), 雙擊執(zhí)行時(shí)就會(huì)亂碼

解決方法

方法1

將bat文件轉(zhuǎn)換成你當(dāng)前操作系統(tǒng)的編碼
比如將UTF-8格式bat文件, 右鍵編輯, 然后選文件另存, 指定為ANSI編碼, 保存

然后再執(zhí)行就正常了

方法2

假如你的bat文檔是日文格式的或其他格式, 首先需要將bat文件的編碼轉(zhuǎn)換到UTF-8格式

會(huì)python的話可以參考我的另一篇博客
《記錄一些最近用過的編碼轉(zhuǎn)換》
https://www.jb51.net/article/171899.htm
復(fù)制出一些字符串或者是字節(jié)集, 跑碼識(shí)別一下看是什么的編碼的

然后用文本工具或是python代碼實(shí)現(xiàn)轉(zhuǎn)換

def decoding(path,fromcode,tocode):
	# 以bytes形式讀取bat內(nèi)容
    with open(path,'rb') as f:
        b = f.read()
        print(b)
    # 解碼另存為'temp.bat'
    with open('temp.bat', 'w', encoding=tocode) as f:
        s = b.decode(fromcode,errors='ignore')
        f.write(s)

decoding('dir.bat','gbk','utf-8')

得到UTF-8格式的bat文件

接下來需要將你的cmd也調(diào)整到utf-8
將以下內(nèi)容保存為cmd_UTF-8.reg然后運(yùn)行

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:0000fde9

此時(shí)cmd環(huán)境也就變成了UTF-8的

然后此時(shí)再執(zhí)行bat文件就不會(huì)亂碼了

至于后續(xù)將cmd恢復(fù)回默認(rèn)也很簡(jiǎn)單
將以下內(nèi)容保存為cmd_ANSI.reg然后運(yùn)行即可

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=-

到此這篇關(guān)于解決bat批處理輸出亂碼的問題的文章就介紹到這了,更多相關(guān)bat批處理輸出亂碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 讓bat批處理以管理員權(quán)限運(yùn)行的實(shí)現(xiàn)方法
  • BAT 批處理腳本教程(詳細(xì)篇腳本之家補(bǔ)充)
  • Windows下使用批處理文件.bat刪除舊文件
  • 利用bat批處理程序通過DOS命令行刪除所有的空文件夾的方法
  • bat命令批處理判斷32位還是64位系統(tǒng)的多種方法
  • 解決springmvc+mybatis+mysql中文亂碼問題
  • bat文件加密 bat解密腳本(讓bat亂碼現(xiàn)形)

標(biāo)簽:通遼 滄州 昌都 韶關(guān) 資陽 阿里 海北 咸寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《解決bat批處理輸出亂碼的問題》,本文關(guān)鍵詞  解決,bat,批處理,輸出,亂碼,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《解決bat批處理輸出亂碼的問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于解決bat批處理輸出亂碼的問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    河津市| 洛阳市| 乌恰县| 和平区| 墨玉县| 咸宁市| 交城县| 新和县| 兴山县| 金坛市| 丽江市| 凤阳县| 双流县| 赤城县| 台州市| 名山县| 天峻县| 永福县| 灵山县| 西宁市| 盐山县| 金坛市| 南京市| 永福县| 万州区| 洛阳市| 常德市| 嫩江县| 杨浦区| 吉林市| 枣强县| 石阡县| 利津县| 维西| 三门峡市| 侯马市| 庆城县| 左云县| 满洲里市| 遂昌县| 陈巴尔虎旗|