我正在编写一个powershell脚本,其中我正在使用
Get-EventLog -logname System | Export-Clixml "syslogs.xml"
以xml格式获取系统日志。创建xml之后,我必须将它移动到Linux主机上。我尝试将这个xml文件复制到linux主机上,然后当我执行less syslogs.xml时,我收到一条消息,即这可能是一个二进制文件,而less显示的是不可读字符。
但是,当我执行vi syslogs.xml时,我可以查看xml。谁能告诉我为什么less将syslogs.xml检测为二进制文件,以及如何修复它?
谢谢
发布于 2017-07-17 19:15:14
Export-Clixml默认为UTF-16,而less并不觉得。我很惊讶维能做到(但我可以证实)。试试Export-Clixml -Encoding UTF8。这仍然使用BOM导出,less将BOM显示为两个二进制字符。如果这让您感到困扰,-Encoding Default将使用平台默认编码,这可能是任何东西。或者您可以在Linux端使用recode:recode utf16.. syslogs.xml将把UTF-16的文件转换为系统的默认字符集。同样,这可能是任何事情;为了避免损耗,您可能希望至少坚持UTF-8,这是大多数工具可以处理的。recode utf16..utf8将在没有BOM的情况下重新编码到UTF-8,这可能是Linux上最兼容的格式。
https://stackoverflow.com/questions/45151793
复制相似问题