UTF-8批处理输出中文乱码问题

2023-02-06 08:27 技术文章 3057 阅读 分享


使用批处理批量解决问题时,执行过程中你可能会遇到中文乱码问题。这是因为 bat 脚本文件的默认编码不是ANSI编码,导致中文无法正常显示。解决方法一般有两个。

通常情况下,我们只需使用文本编辑器将批处理脚本的编码转为ANSI即可正常显示中文,如下图:

但在某些情况下,为了保持 bat 脚本的通用性,或需要批处理与其他程序配合输出,就必须保证脚本编码为 UTF-8。此时,我们需要在 bat 脚本中使用 chcp 命令来更改代码页,如下图:

说明

乱码问题的根因在于编码与解码所使用的标准不一致。在简体中文操作系统中,批处理默认以 GB2312 编码进行解码,我们可以使用 chcp 命令来查看当前代码页。

其中 936 代表 GB2312,其他常用编码的对照表如下:

所以要想解决中文乱码问题(默认 chcp 936 时)

  1. 将脚本转换为 GB2312 编码方式,再执行。
  2. 在批处理脚本开头先执行 chcp 65001,将解码方式设置为 UTF-8(前提是批处理文件本身为 UTF-8 编码)。

更多文章 下一页