解决 vim 中文乱码问题
2024-03-28 10:32:53 # Tricks

确定问题

首先需要确定是否是 vim 的问题

可以先用 cat <file> 命令查看下文件内容是否正常,如果正常,那就是 vim 的问题,如果异常则有可能是工具端的乱码或者服务器端的乱码

可以修改工具端的编码格式 甚至字体,然后查看是否正常

也可以用 file <file> 查看文件的编码格式来确定

仅一次生效的处理

vim 打开文件后,执行 :set encoding=utf8 来设置本次的文件编码格式,如果正常即可

全局设置

修改 /etc/vim/vimrc 文件

1
2
3
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

保存即可

配置解释

  • fileencodings:指定了 Vim 在打开文件时尝试使用的字符编码列表。它告诉 Vim 首先尝试使用 UTF-8 编码打开文件,如果失败,则依次尝试 UCS-2 编码、GB18030 编码、GBK 编码、GB2312 编码以及 CP936 编码。这样设置可以确保 Vim 能够正确地识别和处理不同编码的文件
  • termencoding:指定了 Vim 在与终端交互时使用的字符编码。它告诉 Vim 使用 UTF-8 编码与终端进行通信,以确保 Vim 能够正确地显示和处理 UTF-8 编码的字符
  • encoding:指定了 Vim 在处理文本时使用的字符编码。它告诉 Vim 使用 UTF-8 编码来处理文本文件,以确保 Vim 能够正确地读取、编辑和保存 UTF-8 编码的文本文件