如果您在 Windows 上进行自动化并且您正在重定向不同命令的输出(内部cmd.exe
或外部,您会发现您的日志文件包含组合的 Unicode 和 ANSI 输出(这意味着它们是无效的并且不会在查看器/编辑器中很好地加载) )。
是否可以使 cmd.exe 与 UTF-8 一起使用?这个问题不是关于显示,而是关于 stdin/stdout/stderr 重定向和 Unicode。
我正在寻找一种解决方案,可以让您:
- 使用 UTF-8 将内部命令的输出重定向到文件
- 将支持 Unicode 的外部命令的输出重定向到文件,但编码为 UTF-8。
如果使用批处理文件无法获得这种一致性,是否有另一种解决此问题的方法,例如为此使用 python 脚本?在这种情况下,我想知道是否可以单独进行 Unicode 检测(使用脚本的用户不应该记住被调用的工具是否会输出 Unicode,它只会期望将输出转换为 UTF-8。
为简单起见,我们假设如果工具输出不是 Unicode,它将被视为 UTF-8(无代码页转换)。