1

我正在编写我正在使用的 powershell 脚本

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

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

但是,当我这样做时vi syslogs.xml,我可以查看 xml。谁能告诉我为什么less检测syslogs.xml为二进制文件以及如何修复它?

谢谢

4

1 回答 1

2

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

于 2017-07-17T19:15:14.960 回答