Unicode 如何让vim显示文件数据的逐字节表示

Unicode 如何让vim显示文件数据的逐字节表示,unicode,utf-8,vim,hex-editors,Unicode,Utf 8,Vim,Hex Editors,我不希望vim以任何特定于编码的方式解释我的数据。换句话说,当我在vim中时,我希望光标所在的字符对应于实际字节,而不是该字节的utf*(等)表示 我需要使用vim来分析由其他人(使用其他软件)造成的Unicode转换错误引起的问题,因此了解实际情况非常重要 例如,在Cygwin的vim中,我已经能够将UTF-8 BOM视为 ï»?[文件数据的开始] 这太完美了。我将其识别为UTF-8 BOM,如果我想知道每个字符的十六进制是什么,我可以将光标放在字符上并使用“ga” 我最近买了一台合适的Lin

我不希望vim以任何特定于编码的方式解释我的数据。换句话说,当我在vim中时,我希望光标所在的字符对应于实际字节,而不是该字节的utf*(等)表示

我需要使用vim来分析由其他人(使用其他软件)造成的Unicode转换错误引起的问题,因此了解实际情况非常重要

例如,在Cygwin的vim中,我已经能够将UTF-8 BOM视为

ï»?[文件数据的开始]

这太完美了。我将其识别为UTF-8 BOM,如果我想知道每个字符的十六进制是什么,我可以将光标放在字符上并使用“ga”

我最近买了一台合适的Linux机器(Fedora)。在/etc/vimrc中,该行存在

设置文件编码=ucs bom,utf-8,拉丁1

当我在这台机器上查看UTF-8 BOM时,BOM完全隐藏了

当我向~/.vimrc添加以下行时

设置fileencodings=1

我明白了

什么

前3个字符是BOM(当ga用于BOM时)。我不知道最后3个字符是什么

有一次,我甚至看到UTF-8 BOM被表示为“feff”——UTF-16 BOM

不管怎样,你知道我的问题了。我需要准确地查看文件中的内容,而不用vim为我解释字节。我知道我可以使用xxd、od等,但vim作为分析工具一直非常方便。另外,我希望能够编辑文件,并保存它们没有任何转换问题


感谢您的帮助。

使用
'binary'
模式:

:edit ++bin file

:帮助“二进制文件”

将不使用“fileencoding”和“fileencodings”选项 读取文件时不进行转换


序列实际上是U+FEFF(BOM)编码的UTF-8、解码的拉丁语1、编码的UTF-8和再次解码的拉丁语1<代码>ï»是U+FEFF(BOM)编码为UTF-8,解码为latin1。你离不开编码。这些不是实际的字节,它们是错误解码显示的拉丁字符。如果需要字节,请使用十六进制编辑器;否则,请使用正确的解码。

加载文件后,我通过执行
:e++enc=latin1
获得了一些良好的效果(VIm对编码的初始猜测在此阶段并不重要)。

谢谢。这是一个非常合乎逻辑的建议,但我得到了同样的结果。提醒你:每当有人写,说,甚至认为“UTF-8 BOM”,一只小猫就会被杀。这非常有用
vim -b file