【Linux】系统字符集无法修改,单独修改vim后的文件字符集
系统字符集无法修改,单独修改vim后的文件字符集
环境:
系统字符集
root@uos:~# locale
LANG=zh_CN.gb18030
LANGUAGE=zh_CN
LC_CTYPE="zh_CN.gb18030"
LC_NUMERIC="zh_CN.gb18030"
LC_TIME="zh_CN.gb18030"
LC_COLLATE="zh_CN.gb18030"
LC_MONETARY="zh_CN.gb18030"
LC_MESSAGES="zh_CN.gb18030"
LC_PAPER="zh_CN.gb18030"
LC_NAME="zh_CN.gb18030"
LC_ADDRESS="zh_CN.gb18030"
LC_TELEPHONE="zh_CN.gb18030"
LC_MEASUREMENT="zh_CN.gb18030"
LC_IDENTIFICATION="zh_CN.gb18030"
LC_ALL=zh_CN.gb18030
执行cat命令
root@uos:~# cat test.txt
xxx ���xxx ����
临时解决办法:
root@uos:~# iconv -f GBK -t UTF-8 test.txt > new_file.txt
root@uos:~# vim new_file.txt
永久解决办法:
可以通过在 .vimrc
文件中添加一些配置来实现自动检测文件编码并在使用 vi
打开文件时自动设置编码。以下是具体步骤:
- 打开
.vimrc
文件- 在终端中使用命令
vi ~/.vimrc
打开该文件。如果文件不存在,可以创建一个。
- 在终端中使用命令
- 添加配置内容
-
在
.vimrc
文件中添加以下内容:" 设置文件编码自动检测 set fileencodings=utf-8,gbk,big5,latin1 set encoding=utf-8
这些配置的作用是让 Vim 尝试自动检测多种常见的文件编码(如 UTF-8、GBK、Big5、Latin1),并将 Vim 的内部编码设置为 UTF-8。
-
- 保存并退出
-
在 Vim 中,按下
Esc
键退出编辑模式,然后输入:wq
保存并退出.vimrc
文件。 -
source .vimrc
是配置文件生效现在,当你再次使用
vi
打开文件时,Vim 会自动检测文件编码并进行适当的设置,以尽量正确地显示文件内容。
-