我正在编写一个PowerShell脚本,我正在使用
Get-EventLog -logname System | Export-Clixml "syslogs.xml"
以xml格式获取系统日志。一旦我创建了xml,我就必须将它移动到Linux主机上。
我尝试将这个xml文件复制到linux主机,然后当我在做less syslogs.xml
时,我收到一条消息,说这可能是一个二进制文件,而且显示不可读的字符。
然而,当我在做vi syslogs.xml
时,我能够查看xml。
任何人都可以告诉我为什么less
将syslogs.xml
检测为二进制文件,我该如何解决?
由于
答案 0 :(得分:2)
Export-Clixml
默认为UTF-16,less
没有理解。我很惊讶vi可以(但我可以确认它)。试试Export-Clixml -Encoding UTF8
。这仍然使用BOM导出,less
显示为两个二进制字符。如果这困扰你,-Encoding Default
将使用平台默认编码,这可能是任何东西。或者您可以在Linux端使用recode
:recode utf16.. syslogs.xml
会将文件从UTF-16转换为系统的默认字符集。同样,这可能是任何事情;为了避免损失,你可能想要坚持至少UTF-8,这是大多数工具可以处理的。 recode utf16..utf8
将在没有BOM的情况下重新编码为UTF-8,这可能是Linux上最兼容的格式。