vim 编辑器 打开GB2312、GBK文件乱码解决方法

当vim打开GB2312或GBK编码的文件出现乱码时,可以通过修改配置和使用Linux命令如iconv、enca及convmv进行转换。详细步骤包括编辑配置文件、使用iconv进行GBK到UTF-8的转换,以及利用enca检查文件编码和convmv批量转换文件名编码。

安装好的操作系统一般都带有vim编辑器,但是默认不支持GB2312中文,打开文件出现乱码,解决办法如下。

 

1.打开以下文件

1

sudo vim /var/lib/locales/supported.d/local

 2.添加以下内容

1

2

3

zh_CN.GBK GBK

zh_CN.GB2312 GB2312

zh_CN.GB18030 GB18030

 3.执行以下命令,使配置生效

1

sudo dpkg-reconfigure locales

 4.打开以下文件

1

sudo vim /etc/vim/vimrc

 5.在文件末尾添加以下内容

1

2

3

set fileencodings=utf-8,gb2312,gbk,gb18030

set termencoding=encoding

set encoding=prc

 6.保存退出即可!

 

reflink:https://www.cnblogs.com/suibber/p/5007795.html

 

Linux下转换文件从GBK到UTF-8

iconv -f gbk -t utf-8 source-file -o target-file

 

1. 通过iconv -l 命令查看,其支持的编码格式还不少,之间可以互相转换

 

2. 转换gbk编码文件为utf-8编码文件

简洁命令:iconv  -f gbk -t utf-8 index.html > aautf8.html

其中-f指的是原始文件编码,-t是输出编码  index.html 是原始文件   aautf8.html是输出结果文件

3. 转换gbk编码文件为utf-8编码文件

详细命令:iconv -c --verbose  -f gbk -t utf-8 index.html -o index_utf8.html

-c 指的是从输出中忽略无效的字符, --verbose指的是打印进度信息   -o是输出文件

4. 转换utf-8编码文件为gb2312编码文件

详细命令:iconv -c --verbose  -f utf-8 -t gb2312 index_utf8.html -o index_gb2312.html

 

5. php中iconv函数使用方法,iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库

1.首先下载libiconv函数库

2、解压缩tar -zxvf libiconv-1.9.2.tar.gz

3、安装libiconv        configure --prefix=/usr/local/iconv        make        make install 4、重新编译php 增加编译参数--with-iconv=/usr/local/iconv 

结果:iconv被安装到/usr/local/目录中

 

Linux下GBK文件编码批量转换UTF-8命令

在工作中,经常会遇到使用操作系统不一样的环境,从而导致在不同环境下的文件编辑的编码是不一样的,Windows默认是GBK编码格式,Linux默认是UTF-8的格式,这样就会出现把GBK编码的文件拷贝到Linux下出现乱码情况,很是让人头疼,下面给大家介绍下GBK->UTF-8文件编码批量转换。

Linux命令-enca 查看文件的编码
Enca语法
Usage:  enca [-L LANGUAGE] [OPTION]... [FILE]...
        enconv [-L LANGUAGE] [OPTION]... [FILE]...
        Detect encoding of text files and convert them if required.
Enca用法
$ enca -L zh_CN file 检查文件的编码
$ enca -L zh_CN -x UTF-8 file 将文件编码转换为"UTF-8"编码
$ enca -L zh_CN -x UTF-8 file1 file2 如果不想覆盖原文件可以这样
除了有检查文件编码的功能以外,”enca”还有一个好处就是如果文件本来就是你要转换的那种编码,它不会报错,还是会print出结果来, 而”iconv”则会报错。这对于脚本编写是比较方便的事情。

转换单个文件的编码
$ enca -L none -x utf-8  index.html
转换多个文件的编码
$ enca -x utf-8 *
Linux文件名编码批量转换--convmv
Convmv语法
$ convmv -f 源编码 -t 新编码 [选项] 文件名
Convmv 常用参数
-r 递归处理子文件夹
–notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。
–list 显示所有支持的编码
–unescap 可以做一下转义,比如把%20变成空格
示例
转换一个文件由GBK转换成UTF-8

convmv -f GBK -t UTF-8 --notest utf8 filename
GBK->UTF-8文件编码批量转换脚本

$ find default -type f -exec convmv -f GBK -t UTF-8 --notest utf8 {} -o utf/{} \;
使用iconv 转换
Iconv语法
iconv -f encoding -t encoding inputfile
示例
单个文件转换

$ iconv -f GBK -t UTF-8 file1 -o file2
批量转换

$ find default -type d -exec mkdir -p utf/{} \;
$ find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;
这两行命令将default目录下的文件由GBK编码转换为UTF-8编码,目录结构不变,转码后的文件保存在utf/default目录下。


原文链接:https://blog.csdn.net/u012724167/article/details/77248919

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值