Export-Clixml 创建 less 无法读取的二进制文件
Export-Clixml creating binary file which cannot be read by less
我正在编写一个 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
检测为二进制文件,我该如何修复它?
谢谢
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 上最兼容的格式。
我正在编写一个 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
检测为二进制文件,我该如何修复它?
谢谢
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 上最兼容的格式。