【发布时间】:2020-11-06 20:28:29
【问题描述】:
我正在使用 Windows 连接文件。我使用了 TYPE 和 COPY 命令,得到了相同的工件。在我的原始文件加入新文件的地方,插入字符串“”(即十进制:139 175 168 十六进制:8BAFA8)。
我该如何解决这个问题?您是否可以提供一个简单的解释来避免这种情况。为什么会发生这种情况?
【问题讨论】:
-
我猜这是某种编码规范,要么是字节顺序标记,要么是类似的东西,表示用于以下文件的编码类型。这些字符很可能作为您当时附加的文件中的前 3 个字符存在。
-
你确定这些是字节吗?字符
完全匹配 UTF-8 字节顺序标记,但这是不同的字节值。 -
您正在查看一个表格,其中包含 MSDOS 使用的过时代码页之一,但仍由 Windows 中的所谓“DOS 窗口”或“DOS 框”模拟。但现代(自 2003 年以来)Windows 程序(如记事本)使用一组不同的代码页——美国和西欧通常使用code page 1252。在 1252 中,这三个字符是 EF BB BF,它们是 U+FEFF 的 UTF8。 @LasseV.Karlsen
-
…或代码页65001?无论如何,
type不会在使用重定向后立即更改或转换任何内容,因此它处于二进制模式;copy具有/A(ASCII 文本文件)和/B(二进制文件)选项,您可能想尝试一下…… -
如果您在 Windows 中运行 cmd.exe,那么 它不是 DOS。 DOS and cmd.exe 是完全不同的东西,所以如果您实际上不运行 DOS,请不要将其称为 DOS。谁说“不要使用 DOS”?命令行实际上是做很多事情的首选方式,因为它通常比具有许多 GUI 不提供的选项的 GUI 强大得多
标签: windows text unicode cmd byte-order-mark