Linux文本文件编码问题
来源:互联网 发布:百视通网络电视要密码 编辑:程序博客网 时间:2024/06/08 05:01
早上试着从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格式保存,之后就可以正常读取中文
这里要感谢这位仁兄
http://blog.csdn.net/seuxiaoqi/article/details/5577195 提供的解决方案.
不过他表示:解决方法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提供的编码列表尝试,如 果没有找到合适的编码,就用latin-1(ASCII)编码打开。”
即使测试文件格式为“cp936”还是会自动识别,因此中文注释就没有显示错误了.
- Linux文本文件编码问题
- Linux文本文件内容编码问题
- 文本文件的编码格式问题
- 探测文本文件编码的问题
- 字符流读取文本文件的编码问题
- 乱码问题之文件,文本文件以及编码
- Linux探测文本文件的编码方式
- linux下查看文本文件编码格式
- linux 下文本文件的编码格式转换
- 文本文件编码 email编码
- C#文本文件编码问题,区别UTF-8和GB2312
- vim读取windows下的中文文本文件编码问题
- java生成文本文件linux下换行问题
- 在 Linux 如何更改文本文件的字符编码
- 如何判断文本文件编码
- 如何判断文本文件编码
- 文本文件编码格式
- 文本文件编码转换器
- C语言里,main 函数中 return x和 exit(x) 到底有什么区别 ?
- 【POI2008】【BZOJ1131】Sta
- 【工业4.0】物联网“新概”思考
- C语言关键字static的绝妙用途
- 新版图模系统开发
- Linux文本文件编码问题
- [no]@json核心技术——《描述表》
- HDU 1198 并查集(感觉自己写的有点复杂)
- 12条机器学习的经验
- curl operate elasticsearch
- Ceph Calamari软件包介绍
- CSMA/CD协议
- /bin/bash^M: 坏的解释器: 没有那个文件或目录
- RTC实时时钟驱动