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

Linux文本 文件编码问题

发布时间:2022-12-05 12:59:50 所属栏目: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”还是会自动识别,因此中文注释就没有显示错误了.
 

(编辑:拼字网 - 核心网)

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