导出-clixml创建二进制文件,该文件不能被更少的人读取



我正在编写一个我正在使用的Powershell脚本

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

以获取 XML 格式的系统日志。创建该xml后,我必须将其移动到Linux主机。 我尝试将此xml文件复制到linux主机,然后在执行less syslogs.xml时收到一条消息,指出这可能是一个二进制文件,并且显示不可读字符较少。

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

谢谢

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 上最兼容的格式。