繁体   English   中英

Windows XP - cmd.exe - 切换到utf8代码页后无法执行批处理文件

[英]Windows XP - cmd.exe - Cannot execute batch file after switching to utf8 codepage

切换到“mode con cp select = 65001”的utf8代码页后,批处理接缝停止工作,没有任何错误消息。

因此,在新启动的控制台中执行“cmd.exe / c test.bat”并且代码页437或850处于活动状态时工作正常。 执行“mode con cp select = 65001”工作正常。 显示UTF-8字符工作正常。 执行类似“echo Hallo!”的操作。 工作良好。

但执行“cmd.exe / c test.bat”会停止工作,不会显示任何错误消息。

这不仅是显示错误:批处理文件未执行。

切换回任何“旧”字符集可以让它再次正常工作。 切换到UTF8字符集可以让它再次停止工作。

当然,弃权UTF8是一种解决方案 - 但背景中有不良副作用。

代码页更改为65001后,我不知道如何启动批处理文件。
即使您将批处理文件保存在utf16-le或utf16中,它也无法启动。

但您可以运行批处理文件并更改其中的代码页,
但重要的是其余代码缓存在一个块(括号或符号行)中。

@echo off
(
chcp 65001
rem Do my UTF work
chcp 850
)
echo This works

chcp 65001 & type myFile & chcp 850
echo This also works

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM