我正在编写一个我正在使用的Powershell脚本
Get-EventLog -logname System | Export-Clixml "syslogs.xml"
以获取 XML 格式的系统日志。创建该xml后,我必须将其移动到Linux主机。 我尝试将此xml文件复制到linux主机,然后在执行less syslogs.xml
时收到一条消息,指出这可能是一个二进制文件,并且显示不可读字符较少。
但是,当我做vi syslogs.xml
时,我能够查看 xml。 任何人都可以告诉我为什么less
syslogs.xml
检测为二进制文件以及如何解决它?
谢谢
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 上最兼容的格式。