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

Utf 8 Windows XP-cmd.exe-切换到utf8代码页后无法执行批处理文件,utf-8,batch-file,cmd,codepages,Utf 8,Batch File,Cmd,Codepages,切换到带有“mode con cp select=65001”的utf8代码页后,批处理将停止工作,且不会出现任何错误消息 因此,在代码页437或850处于活动状态的新启动控制台中执行“cmd.exe/c test.bat”可以正常工作。 执行“模式con cp select=65001”工作正常。 UTF-8字符的显示效果良好。 执行类似“回音哈罗!”的动作效果很好 但是执行“cmd.exe/c test.bat”会停止工作,并且不会显示错误消息 这不仅仅是一个显示错误:批处理文件无法执行 切

切换到带有“mode con cp select=65001”的utf8代码页后,批处理将停止工作,且不会出现任何错误消息

因此,在代码页437或850处于活动状态的新启动控制台中执行“cmd.exe/c test.bat”可以正常工作。 执行“模式con cp select=65001”工作正常。 UTF-8字符的显示效果良好。 执行类似“回音哈罗!”的动作效果很好

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

这不仅仅是一个显示错误:批处理文件无法执行

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


当然,不使用UTF8是一个解决方案,但在后台会产生不良副作用。

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

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


chcp 65001
在这种情况下有什么不同吗?
调用test.bat
有什么不同吗?
@echo off
(
chcp 65001
rem Do my UTF work
chcp 850
)
echo This works

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