gpt4 book ai didi

linux - 在 Vim 中从 DOS 到 Linux 的文本文档

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:11 29 4
gpt4 key购买 nike

我得到了一个 XML 格式的跟踪文件(在 Windows 机器上创建)。当我在 Vim 中打开它或在命令行(在 Mac 或 Linux 上)上 cat 时,它在视觉上看起来很好。但是在 XML 解析器未能如我所料地加载文档后,我发现,在深入挖掘之后,到处都是不可打印的字符:

h001:logs bill$ xxd trace.xml | head -n 3
0000000: fffe 3c00 3f00 7800 6d00 6c00 2000 7600 ..<.?.x.m.l. .v.
0000010: 6500 7200 7300 6900 6f00 6e00 3d00 2200 e.r.s.i.o.n.=.".
0000020: 3100 2e00 3000 2200 2000 6500 6e00 6300 1...0.". .e.n.c.

然后我尝试了以下方法,但没有成功地删除这些非打印字符:

:%s/[^[:print:]]//g
:%s/[^[:control:]]//g
:%s/[^[:null:]]//g

我想这是因为我正在从 Windows 切换到 Linux,但我没有看到任何常见的工件(例如 ^M、^@ 等)。

关于这里发生的事情以及从 Vim 中删除这些内容的正确方法有什么想法吗?

最佳答案

问题是您的 XML 解析器不理解 UTF-16。

您可以通过打开一个空的 vim session 并执行以下操作来转换它:

:e ++enc=utf-16le file.txt
:w ++enc=utf8

这将使用 utf-16 little endian 编码打开文件,并将其保存为 utf-8。

关于linux - 在 Vim 中从 DOS 到 Linux 的文本文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28420086/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com