很多时候问题当时解决了,但是后来碰到又忘记怎么解决的了,记性老不好,还是记下笔记和大家一起分享吧。
vim里面设置好.vimrc的字符读取配置后,形式如下:
经过hexdump乱码文件发现现在的一个汉字都成了三个字节,而且在vim打开提示无转换状态,说明这个文件目前的文字编码是UTF-8编码;而原来的文字编码可能是两个字节两个,最好的方式,转换为latin1编码重新垒码。
vim里面设置好.vimrc的字符读取配置后,形式如下:
set fileencodings=ucs-bom,utf-8,gbk,big5,latin1终端的编码也是UTF-8,这样,打开latin1、gbk、big5的文件的时候,vim会自动识别(需要vim7.0以上版本)其编码格式,这样看到字符不是乱码,但是我将vim自动识别的编码copy到其他文件,注意,这里的编码就在vim的操作yy的过程中,出现了二次编码的情况,其他文件一旦保存,那么其内存就会变成乱码格式,这就是二次编码乱码问题的由来。
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
经过hexdump乱码文件发现现在的一个汉字都成了三个字节,而且在vim打开提示无转换状态,说明这个文件目前的文字编码是UTF-8编码;而原来的文字编码可能是两个字节两个,最好的方式,转换为latin1编码重新垒码。
找到原因,则开始解决问题:
用vim打开乱码文件,在命令模式下输入:
//转换内码格式
当然是有办法看的:
打开的newfile.txt文件,在命令模式下输入:
亲爱的读者,讲到这里,您大概明白怎么回事了吧?
用vim打开乱码文件,在命令模式下输入:
//转换内码格式
:set fileencoding=latin1//重新垒码
:w newfile.txt然后打开newfile.txt看看,是不是可以看到文件不乱码了? :) 值得注意的是,看到vim打开文件的状态已经变成“已转换”,说明该文件肯定不是UTF-8编码了,具体是哪种格式呢?
当然是有办法看的:
打开的newfile.txt文件,在命令模式下输入:
:set fileencoding注意,这里别按回车,按一下tab键(制表符),默认给出解析文件一种编码方式,这个编码方式就是文件的编码,我这里是cp936,可见是GBK的国标码。
亲爱的读者,讲到这里,您大概明白怎么回事了吧?