問題描述
bat 批處理腳本如下
@echo off
echo hello,world.
echo 你好,中國
pause
在 CMD 執行該腳本時,出現了中文亂碼
問題分析
- 亂碼都跟字符編碼有關係。
- 計算機只能處理數字,如果遇到文本,必須先將其轉換爲數字後才能處理,由此出現了字符編碼(字符集)。如果編碼時採用某種字符編碼,那麼解碼時,必須得相對應使用同一種字符編碼,如採用不同的字符編碼,會出現亂碼。
問題解決
1. 轉換腳本文件的編碼方式
默認情況下,在 bat 腳本文件中,如果中文不是ANSI編碼,就會出現亂碼。因此,可以採用Windows操作系統平臺自帶的記事本打開腳本文件,點擊菜單【文件】-【另存爲】操作,選擇ANSI編碼進行保存。
轉換編碼後,再次運行,中文亂碼問題得到解決。
2. 更改代碼頁
在原先 bat 腳本文件中聲明更改代碼頁
chcp 65001
再次運行,中文亂碼問題得到解決。
拓展
- chcp 命令
Changes the active console code page.
- 常用代碼頁映射
代碼頁 | 映射的字符集 |
---|---|
936 | GB2312 |
20127 | US-ASCII |
65001 | UTF-8 |