当前位置:  开发笔记 > 开发工具 > 正文

为什么Windows命令提示符与批处理文件的编码有区别?

如何解决《为什么Windows命令提示符与批处理文件的编码有区别?》经验,为你挑选了1个好方法。

例如,假设我有一个名为的批处理文件'test.cmd',它只包含:

echo %1

我可以直接从命令提示符调用它'test.cmd some¬arg',结果'some¬arg'是打印字符串.

但是,如果我将相同的调用放在第二个批处理文件中,'tester.cmd'为了参数调用,我从命令提示符调用它,结果'some%arg'是打印字符串.

是什么扰乱了编码,我该如何解决它呢?我相信我之前已经解决了这个问题,但我不记得是怎么回事......

谢谢!



1> Tomalak..:

这是因为您的批处理文件编码在与cmd.exe当前不同的代码页中.

在西部默认配置中,cmd.exe在CP850中启动,但文本编辑器通常在CP1252中工作(通常错误地称为Latin-1或ISO-8859-1).

字符"¬"和"¼"在这两个代码页"BC"中共享相同的字符代码.

解决方案很简单.在代码页850中编码批处理文件,或通过发出将cmd.exe切换到代码页1252 chcp 1252.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有