Export-Clixml创建无法读取的二进制文件

时间:2017-07-17 19:03:35

标签: powershell vi less-unix

我正在编写一个PowerShell脚本,我正在使用

Get-EventLog -logname System | Export-Clixml "syslogs.xml"

以xml格式获取系统日志。一旦我创建了xml,我就必须将它移动到Linux主机上。 我尝试将这个xml文件复制到linux主机,然后当我在做less syslogs.xml时,我收到一条消息,说这可能是一个二进制文件,而且显示不可读的字符。

然而,当我在做vi syslogs.xml时,我能够查看xml。 任何人都可以告诉我为什么lesssyslogs.xml检测为二进制文件,我该如何解决?

由于

1 个答案:

答案 0 :(得分:2)

Export-Clixml默认为UTF-16,less没有理解。我很惊讶vi可以(但我可以确认它)。试试Export-Clixml -Encoding UTF8。这仍然使用BOM导出,less显示为两个二进制字符。如果这困扰你,-Encoding Default将使用平台默认编码,这可能是任何东西。或者您可以在Linux端使用recoderecode utf16.. syslogs.xml会将文件从UTF-16转换为系统的默认字符集。同样,这可能是任何事情;为了避免损失,你可能想要坚持至少UTF-8,这是大多数工具可以处理的。 recode utf16..utf8将在没有BOM的情况下重新编码为UTF-8,这可能是Linux上最兼容的格式。