解决vim 显示乱码问题

甲: 首先查看系统对中文的支持
locale -a | grep zh_CN

乙: 存在3个变量:
1.    encoding (内部编码)    --该选项使用于缓冲的文本(你正在编辑的文件),寄存器,Vim 脚本文件等等。
2.     fileencoding(文件编码)    --该选项是vim写入文件时采用的编码类型。
3.     termencoding(输出编码)    --该选项代表输出到客户终端(Term)采用的编码类型。
进一步解释
encoding—-与系统当前locale相同,所以编辑文件的时候要考虑当前locale,否则要设置的东西就比较多了。
fileencoding—-vim打开文件时自动辨认其编码,fileencoding就为辨认的值。
        为空则保存文件时采用encoding的编码
termencoding—-默认空值,也就是输出到终端不进行编码转换。

解决乱码举例:
1. 一个文件,在windows下用gvim打开正常,在linux 用vim打开乱码。
观察:windows 下,查看. encoding(cp936), fileencoding(cp936), termencoding()
    linux (乱码), 查看 encoding(utf-8), fileencoding(latin1), termencoding()
分析:是fileencoding 检查出错所致, 但是查看 fileencodings 设置, gvim(windows) 和 vim(linux) 都是
    set fileencodings=utf-8,utf-16,cp936,cs-bom,latin-1
    可见在linux 下并没有真正检测出文件编码类型为 cp936(虽然它在前面), 而误认为latin-1

解决办法:
    1.指定以cp936格式重新加载文件。 :e ++enc=cp936
      注意。不是se fileencodings=cp936, 那只是把文件保存为cp936
    2. 搞定vim 文件编码判定过程, 例如在首行添加一个中文。例如: //中文, 就能正确识别。推荐此法
  
总之,搞清这三个变量,可解决乱码问题。
 

今天,从window 上导出了一个书签文件. FreePic2Pdf_bkmk.txt

在linux 下用vim 查看是乱码, 用:e ++enc=cp936还是乱码,

我们查一下这个文件类型

$ file FreePic2Pdf_bkmk.txt

FreePic2Pdf_bkmk.txt: Little-endian UTF-16 Unicode text, with CR line terminators

但是用:e ++enc=utf-16也是乱码.  用 :e ++enc=utf16le 就正常了,可直接编辑. 也可以改变文件编码存储.

用iconv 命令 可以转换文件编码

$ iconv -f utf-16 -t utf-8 FreePic2Pdf_bkmk.txt > new_bkmk.txt

这样, 把utf-16 转成 utf-8 类型, 编辑好后,如果需要,还可以用iconv 把它转回來. 如是解决了乱码问题!

对于linux下用cat 显示的乱码文件,也可以用iconv 转换后显示. 例如:

$ file 00-使用说明.txt
00-使用说明.txt: ISO-8859 text, with CRLF line terminators


这个文件直接用cat  中文显示是乱码,因为是8859文本, 实际上它是cp936编码. 所以可以如下转换后可正确显示.

$ iconv -f windows-936 -t utf8 00-使用说明.txt


windows-936 是通过 iconv -l 查看支持的编码列表查到的.

-------------------------------------------------------

用vim 打开其它编码格式的文件

-------------------------------------------------------

1. 查看文件编码:
    $ file 61F13x_ADC.prj
    61F13x_ADC.prj: Little-endian UTF-16 Unicode text, with CRLF, CR line terminators

2. 用iconv 查看简写
    $ iconv -l
    可看出应为: UTF16LE
 
3. vim 指定转化编码,
例如对此文件, 在vim 中
    : e ++enc=utf16le

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux下,如果Vim中文显示乱码,可能是因为没有设置正确的编码。解决方法是在Vim的配置文件中设置编码,例如在~/.vimrc中加入这一行: set fileencoding=utf-8 如果还是不行,可以尝试使用其他编码,如gbk。 set fileencoding=gbk 也可以直接在命令模式下输入 :set fileencoding=utf-8 如果仍然不行,可以尝试更换终端或者重装Vim。 ### 回答2: LinuxVim中文显示乱码是一个常见的问题,这通常是由于不同编码格式之间的冲突导致的。具体来说,有以下几种可能的原因及解决方法: 1. 配置文件中的编码格式与实际文件的编码格式不一致 在使用Vim编辑文件时,Vim会根据用户的配置文件(通常为~/.vimrc)来确定文件的编码格式。如果该配置文件指定的编码格式与实际文件的编码格式不一致,就会导致乱码问题解决方法是在配置文件中设置正确的编码格式,例如: set encoding=utf-8 2. 终端不支持中文显示 如果终端不支持中文显示,无论Vim的编码格式设置为何种编码,中文都会显示乱码解决方法是先在终端中设置正确的字符集,例如: export LANG=zh_CN.UTF-8 然后在Vim中设置相应的编码格式,例如: set encoding=utf-8 3. 文件编码格式不正确 如果打开的文件的编码格式与Vim设置的编码格式不一致,就会出现乱码问题解决方法是先查看文件的编码格式,例如: file filename 如果文件编码格式为GBK,就可以在Vim中使用以下命令设置编码格式: set fileencodings=utf-8,gb2312,gbk 这样,Vim会依次尝试使用utf-8、gb2312和gbk编码格式来解析文件,如果其中一种编码格式能够正确显示文件内容,就不会出现乱码问题。 总之,解决LinuxVim中文显示乱码问题的关键是要了解各种编码格式之间的相互关系,并正确配置Vim终端的编码格式。只有这样,才能保证中文文件在Vim中正常显示。 ### 回答3: 在Linux下使用vim的时候可能会出现中文乱码的情况,这是由于vim默认使用的是英文编码,无法正确显示中文字符。解决中文乱码问题,需要按照以下步骤: 1. 设置字符编码 可以使用以下命令设置vim的字符编码为utf-8: ``` :set encoding=utf-8 ``` 2. 设置终端的字符编码 如果还是无法正确显示中文字符,可能是终端的字符编码设置不正确。可以使用以下命令查看当前终端的字符编码: ``` echo $LANG ``` 如果发现设置不正确可以使用以下命令临时设置终端字符编码为utf-8: ``` export LANG=en_US.UTF-8 ``` 3. 安装中文字体 如果还是无法正确显示中文字符,可能是由于系统缺少中文字体。可以通过以下命令在Linux系统中安装一个中文字体: ``` sudo apt-get install ttf-wqy-zenhei ``` 4. 设置终端字体 如果还是无法正确显示中文字符,还可以通过设置终端字体的方式解决。在终端的设置界面中,选择一个支持中文字符的字体即可。一般来说,Droid Sans Fallback、WenQuanYi Zen Hei等字体都可以正常显示中文。 以上是在Linux解决vim中文乱码问题的几个方法,可以根据具体情况采取不同的方法解决

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值