Linux文本文件编码问题
后来知道原来是
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”还是会自动识别,因此中文注释就没有显示错误了. (编辑:通辽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |