English 中文(简体)
为什么Windows命令提示符的编码与批处理文件不同?
原标题:
  • 时间:2008-10-31 09:41:47
  •  标签:

例如,假设我有一个批处理文件叫做test.cmd,它只包含:

echo %1

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

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

什么东西搞乱了编码,我该如何避免?我确定以前我解决过这个问题,但我想不起来了…

谢谢!

最佳回答

这是因为您的批处理文件编码不同于cmd.exe当前所在的编码页。

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

在这两个代码页面中,“¬”和“¼”字符共享相同的字符代码“BC”。

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

问题回答

暂无回答




相关问题
热门标签