运行此命令:
echo "foo" > test.txt
我在test.txt中得到了奇怪的结果。实际上,我甚至无法在堆栈溢出中直接复制粘贴内容,但需要显示文件的十六进制输出。看起来像这样 -
ff fe 66 00 6f 00 6f 00 0d 00 0a 00
不确定FF
和FE
是什么,但看起来它也会在每个角色之间放置NULL
。
任何Windows用户都可以指导我正确的方向,为什么会发生这种情况以及如何解决它?我只想要内容" foo"放在该文件中不受干扰。
答案 0 :(得分:6)
0xFFFE
是UTF-16 LE(小端)的Unicode byte order mark,这是正常的Windows Unicode。
您的文件内容是两个字节的BOM,0x6600(" f"),0x6f00(" o"),0x6f00(" o"), 0x0d00("`r"或回车),0x0a00("`n"或新行)
尝试:
echo "foo" | Out-File -FilePath test.txt -Encoding utf8