解决win10执行批处理报编码错误

发布于:2025-04-20 ⋅ 阅读:(12) ⋅ 点赞:(0)

问题描述

永远要记得备份文件。系统不知道哪个时候就会突然崩溃。这不,正在疯狂编码中,我的win7系统就崩溃了,再也无法进入系统,于是乎重装了win10,准备一亲win10的芳泽。win10确实挺香,但是遇到各种各样的问题也是宿命。

我遇到的问题是,以前执行的好好的很多bat批处理文件都无法正常运行了。报错:No such file or direcotry。

首先,怀疑是cmd所在路径没有切换到当前目录的问题?在批处理中加了dir命令,排除了路径错误,确实是在当前目录下执行的。

其次,看到报错信息后面一堆文件路径中文乱码,直觉上感觉是中文文件名导致的问题。用notepad++打开批处理文件,确认编码是ANSI编码,并没有问题。那就是编码页的问题了。

在命令行输入chcp命令:

chcp

反馈的输出是65001,这是utf8编码啊,这不对啊。用chcp修改:

chcp 936

然后再次执行批处理文件:

./build.bat

哗哗哗,一切正常的执行过去了。看来就是编码页问题,但是大家知道,chcp只是修改了当前命令行环境,等下次执行的时候,将依旧面对65001的utf8编码,不能根本解决问题,而且我的批处理文件是git仓库里的多人协作使用的,可不能私自修改编码格式。

解决方法

后来终于找到,问题出在勾选了系统设置里的beta版:使用UnicodeUTF-8提供全球语言支持(U)

设置的具体位置如下,我们需要取消勾选:

一、设置中打开区域和语言页,点击‘管理语言设置’

在这里插入图片描述

二、点击管理tab页按钮,进行切换:

在这里插入图片描述

三、点击‘更改系统区域设置’按钮:

在这里插入图片描述

四、找到目标了,取消勾选。注意这个更改后需要立即重启系统生效。

在这里插入图片描述

重启生效后,我们输入chcp,就会发现默认都是936,代表GBK编码了。

备 注

chcp命令

英文全称:change code page。用途:显示或设置活动代码页编号

语法

nnn - 指定代码页的编号

chcp [nnn]

获取帮助信息

chcp /?

显示当前活动代码页的设置

chcp

设置活动代码页为936(Chinese)

chcp 936

代码页编码

部分代码页与国家/地区或语言的映射,更详细的可求助搜索引擎

代码页 国家/地区或语言
437 United States
850 Multilingual (Latin I)
852 Slavic (Latin II)
855 Cyrillic (Russian)
857 Turkish
860 Portuguese
861 Icelandic
863 Canadian-French
865 Nordic
866 Russian
869 Modern Greek
936 Chinese


网站公告

今日签到

点亮在社区的每一天
去签到