Txt 文件包含无法在 vim 中正确呈现的 bin 字符

Anj*_*esh 3 linux vim

包含内容的 txt 文件在 GUI 编辑器中正确打开(我使用的是 sublime)。但是在vim中,它看起来像这样,现在我无法在此文件中执行grep。当我使用较少时,它说“可能是一个二进制文件”。我如何将其转换为正确的文本文件。知道为什么会出现这些奇怪的字符吗?

Y^@ear|d^@o^@n^@o^@r^@c^@o^@d^@e^@|^@d^@o^@n^@o^@r^@ n^@a^@m^@e^@|^@a^@g^@e^@n^@c^@y^@c^@o^@d^@e^@|^@a^ @g^@e^@n^@c^@y^@n^@a^@m^@e^@|^@c^@r^@s^@i^@d ^@|^@p ^@r^@o^@j^@e^@c^@t^@n^@u^@m^@b^@e^@r^@|^@i^@n^@i^@ t^@

use*_*686 6

它看起来像一个存储在 Unicode UTF-16 LE 中的纯文本文件,其中每个 Unicode 代码点存储为一个或两个 16 位代码单元。

如果文本本身主要是 ASCII 码(所有代码点?U+00FF),如果您从不支持 UTF-16 的编辑器中查看文件,则结果看起来就像在每个字节后插入了一个 NUL 字节。

在命令行中,使用iconv -f utf-16le -t utf-8 < file.txt > file-new.txt来修复它。

在 Vim 中,您可以使用:e ++enc=utf-16le正确的编码重新打开文件。

如果可能,告诉 Sublime 将文件保存为 UTF-8,这将与各种工具更加兼容。(在Vim中::set fileencoding=utf-8 | w