【问题标题】:Export-Clixml creating binary file which cannot be read by lessExport-Clixml 创建 less 无法读取的二进制文件
【发布时间】:2017-07-17 19:03:35
【问题描述】:

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

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

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

但是,当我在做vi syslogs.xml 时,我可以查看 xml。 谁能告诉我为什么lesssyslogs.xml 检测为二进制文件,我该如何解决?

谢谢

【问题讨论】:

  • 顺便说一句,Linux 上有一些非常好的工具可用于处理Export-Clixml 输出,它可以处理任何编码...毫不奇怪,PowerShell

标签: powershell vi less-unix


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    相关资源
    最近更新 更多