加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.52wenzhou.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux文本文件编码问题

发布时间:2022-10-17 15:01:57 所属栏目:Linux 来源:转载
导读: 早上试着从Windows拷贝了几份代码到Linux想练练vim操作,打开一看代码块中文的注释全是乱码-.-
后来知道原来是
Linux中默认使用utf-8编码方式.
Windows文本文件大多数是GBK.
当你在保存文本

早上试着从Windows拷贝了几份代码到Linux想练练vim操作,打开一看代码块中文的注释全是乱码-.-

后来知道原来是

Linux中默认使用utf-8编码方式.

Windows文本文件大多数是GBK.

当你在保存文本文件的时候会默认提示采用ANSI编码:

这里写图片描述

因此在Linux下会有读取异常现象.

网上搜了一下试了几个方法,都没解决,试过

1.用convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK。手动在线安装转化还是没有见效,猜测它转化的逻辑是:转化 -from A -to B 你要转化成B,A的格式也要知道,所以你还要去了解A的原本编码.

2.直接通过设置改变vim的编码读取方式,也没成功+.+

显而易见:

1. 解决方法1是把你要在Linux读取的文件以utf-8格式保存,之后就可以正常读取中文

这里写图片描述

这里要感谢这位仁兄

提供的解决方案.

不过他表示:解决方法1治标不治本,因为你以后每次从windows拷贝一个文件都要重新改变保存编码格式,太过麻烦,有一个更加直接的办法,就是让Vim自动识别判断文件读取的编码方式.

先知道一个命令,就是在Linux命令终端 输入vim + 文本文件名 以Vim模式打开查看或者新建原本不存在的文件

接着在vim模式切换到命令行模式 输入”::set fileencoding“可以查看当前文件编码格式.

在Windows以utf-8保存的文件可以看到如下

这里写图片描述

结果确实是:

如果是其它格式则很可能会出现乱码现象.这个是具体原因.

解决方法2:

~/.vimrc(在/etc目录下面) 文件中添加以下内容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

在我的系统里面这个.vimrc文件不存在,所以我用Vim方式新建了一个(命名为.vimrc)并且按”i”进入insert模式打入上面这段设定:set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936”之后输入 :wq!“保存退出.在此之后打开文本显示就正常了.

因为

“其中encoding是vim的默认显示编码格式,fileencodings是vim打开文件时检测的编码格式,存在这种类型的编码即转换为utf-8 编码。

这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如 果没有找到合适的编码linux编码,就用latin-1(ASCII)编码打开。”

即使测试文件格式为“cp936”还是会自动识别,因此中文注释就没有显示错误了.

这里写图片描述

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!