【问题标题】:Save text file in UTF-8 encoding using cmd.exe使用 cmd.exe 以 UTF-8 编码保存文本文件
【发布时间】:2013-05-16 22:51:40
【问题描述】:

是否可以使用 Windows 的命令行 cmd.exe 以 UTF-8 编码保存文本文件?

当前我正在使用命令重定向运算符创建文本文件:

C:\Windows\system32\ipconfig /all >> output.log

我从> 开始获取新文件,然后使用>> 附加更多信息。

【问题讨论】:

  • 如果你使用 I/O 重定向操作符,那么数据的字符编码是什么并不取决于 shell。这取决于输出被重定向的命令。如果该命令生成有效的 UTF-8,那么这就是文件中的内容。
  • Imo ipconfig 使用“Unicode”。
  • 它没有。与所有控制台模式程序一样,它以对控制台有效的默认 8 位代码页编码生成文本。您使用 chcp 65001 将其更改为 utf-8。您仍然不会得到 BOM。
  • cmd /u /c "ipconfig /all" >> output.log ???

标签: windows encoding utf-8 cmd


【解决方案1】:

命令提示符的默认编码是 Windows-1252。首先将代码页(chcp 命令)更改为 65001 (UTF-8),然后运行您的命令。

chcp 65001
C:\Windows\system32\ipconfig /all >> output.log

完成后将其更改回默认值。

chcp 1252

【讨论】:

  • Here 是其他一些可能有用的代码
  • 1252 可能不是默认代码页。 OEM 代码页是默认值。
【解决方案2】:

正如现有答案所说,在批处理文件中,您可以使用chcp command

chcp 65001 > nul
some_command > file

但是,如果您在其命令行中使用 cmd.exe,例如要执行用户定义的命令,可以使用以下语法:

cmd.exe /c chcp 65001 > nul & cmd.exe /c some_command > file

【讨论】:

    猜你喜欢
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    相关资源
    最近更新 更多