【注意】最后更新于 March 12, 2021,文中内容可能已过时,请谨慎使用。
bat批处理运行时乱码的解决方法
问题现象
bat文件中包含中文,保存的编码格式UTF-8,此时运行该bat文件会出现乱码
1
2
3
4
5
6
7
8
9
10
11
12
|
@echo off
echo ------------------开始---------------------
for /f %%i in (test.txt) do (
SetLocal EnableDelayedExpansion
echo %%i
set str=%%i
Set str=!Str:Helloo=hello!
echo !str!>>1.txt
EndLocal
)
echo ------------------结束---------------------
echo. & pause
|

解决方法
- 改变编码格式为ANSI
- 在原先 bat 脚本文件中声明更改代码页
chcp 65001
1
2
3
4
5
6
7
8
9
10
11
12
13
|
chcp 65001
@echo off
echo ------------------开始---------------------
for /f %%i in (test.txt) do (
SetLocal EnableDelayedExpansion
echo %%i
set str=%%i
Set str=!Str:Helloo=hello!
echo !str!>>1.txt
EndLocal
)
echo ------------------结束---------------------
echo. & pause
|

拓展
代码页 |
映射的字符集 |
936 |
GB2312 |
20127 |
US-ASCII |
65001 |
UTF-8 |