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

标签 utf-8 batch-file cmd codepages

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

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

但是执行“cmd.exe/c test.bat”时停止工作并且没有显示任何错误消息。

不仅仅是显示错误:批处理文件没有被执行。

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

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

最佳答案

代码页改成65001后不知道怎么启动批处理文件。
即使您将批处理文件保存为 utf16-le 或 utf16-be,它也不会启动。

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

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

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

关于utf-8 - Windows XP - cmd.exe - 切换到 utf8 代码页后无法执行批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4882518/

相关文章:

php - 如何在 PHP 中支持 UTF8(日语、阿拉伯语、西类牙语等)URL

java - JDBC批量更新问题

windows - 删除空行

mysql - UTF-8字符有问题;我看到的不是我存储的

php - undefined offset 和变音符号

windows - 批处理文件 : Check if OS is Windows 10

node.js - 在 Node 中设置和读取 Windows ENV 变量?

cmd - 更改密码时 net user 命令中的语法错误

PHP 编码(猜测 UTF-8)

batch-file - XP 上 bat 文件中管道的奇怪限制