问题描述

bat 批处理脚本如下

@echo off

echo hello,world.
echo 你好,中国

pause

在 CMD 执行该脚本时,出现了中文乱码

问题分析

  1. 乱码都跟字符编码有关系。
  2. 计算机只能处理数字,如果遇到文本,必须先将其转换为数字后才能处理,由此出现了字符编码(字符集)。如果编码时采用某种字符编码,那么解码时,必须得相对应使用同一种字符编码,如采用不同的字符编码,会出现乱码。

问题解决

1. 转换脚本文件的编码方式

默认情况下,在 bat 脚本文件中,如果中文不是ANSI编码,就会出现乱码。因此,可以采用Windows操作系统平台自带的记事本打开脚本文件,点击菜单【文件】-【另存为】操作,选择ANSI编码进行保存。

转换编码后,再次运行,中文乱码问题得到解决。

2. 更改代码页

在原先 bat 脚本文件中声明更改代码页

chcp 65001


再次运行,中文乱码问题得到解决。

拓展

  1. chcp 命令

Changes the active console code page.

  1. 常用代码页映射
代码页映射的字符集
936GB2312
20127US-ASCII
65001UTF-8
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐