bat文件编码

bat 文件的编码,主要看文件保存编码和 CMD 控制台代码页是否一致。

常见编码

编码 说明 适用场景
ANSI / GBK 中文 Windows 下通常对应 GBK,代码页 936 传统 bat 脚本,兼容性最好
UTF-8 国际通用编码,代码页 65001 跨平台、现代编辑器环境

方案一:统一用 ANSI / GBK

如果你的 bat 脚本只在中文 Windows 上跑,最稳妥的做法是:

  1. 用记事本打开 .bat 文件;
  2. 点击 ​文件 → 另存为​;
  3. 编码选择 ​ANSI​;
  4. 保存后重新运行。

脚本开头可以加一句,确保控制台也按 GBK 解析:

@echo off
chcp 936 >nul

方案二:统一用 UTF-8

如果你希望 bat 文件和现代编辑器、跨平台工具保持一致,可以用 UTF-8:

@echo off
chcp 65001 >nul
echo 当前编码已切换为 UTF-8
pause

同时把文件保存为 ​UTF-8​。
注意:chcp 65001 只是把当前 CMD 窗口切换成 UTF-8,关闭窗口后会恢复默认设置。

方案三:查看当前编码

在 CMD 中输入:

chcp

如果显示:

活动代码页: 936

说明当前是 GBK/ANSI;如果显示:

活动代码页: 65001

说明当前是 UTF-8。

建议

  • 只在中文 Windows 上运行:优先用 ​ANSI/GBK​。
  • 需要跨平台、跨编辑器协作:优先用 ​UTF-8 + chcp 65001​。
  • 如果 bat 里出现中文路径、中文变量、中文提示,编码不匹配最容易导致乱码。
  • 如果脚本逻辑比较复杂,也可以考虑改用 ​PowerShell​,它对 UTF-8 和中文支持更友好。