【问题背景】:
Mac环境。
我的CSV文件在导入MySQL时,错误提示显示说文件编码格式不正确。需要将CSV文件编码格式转为utf-8。
希望使用:set fileencoding=utf-8转换文件编码格式
然而发现一个问题,在使用vim打开后,发现中文乱码。
所以又需要解决中文乱码问题。
【解决方法】:
1.解决中文乱码问题。配置 ~/.vimrc文件。在文件最后添加如下内容:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
2.解决编码问题
使用vim打开文件,:set fileencoding 查看编码格式。发现我的文件是Latin1,我需要的是utf-8。
所以使用:set fileencoding=utf-8 进行编码转换。
保存。生效。
【参考内容如下】:
1.http://bbs.feng.com/read-htm-tid-5204299.html
查看文件编码可以通过以下几种方式:
1.在Vim中可以直接查看文件编码
:set fileencoding
即可显示文件编码格式。
如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。
2. enca (如果你的系统中没有安装这个命令,可以用sudo yum install -y enca 安装 )查看文件编码
$ enca filename
filename: Universal transformation format 8 bits; UTF-8
CRLF line terminators
需要说明一点的是,enca对某些GBK编码的文件识别的不是很好,识别时会出现:
Unrecognized encoding
文件编码转换
1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8
2. enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下
enconv -L zh_CN -x UTF-8 filename(这个命令对windows的ANSI编码非常有效)。
3. iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2
2.http://blog.sina.com.cn/s/blog_7253e3930102vpqf.html
在
vi ~/.vimrc
添加一下内容
#设置编码
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
#设置不生产临时文件
set nobackup
set noswapfile
set confirm
保存
:wq
最后执行
source ~/.vimrc
即可!
vi ~/.vimrc
粘贴一下内容:
"编码问题
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
"把当前行的对起格式应用到下一行
set autoindent
"将换行自动缩进设置成4个空格;
set shiftwidth=4
"表示一个tab键相当于4个空格键
set tabstop=4
"自动填充4个空格为tab
set expandtab
"显示行号
set nu
"粘贴不缩进的方法:set paste-
set paste
"从不备份-
set nobackup
"禁止生成临时文件
set noswapfile
"确认VI
set confirm
"显 示 TAB 键
set list
"TAB会被显示成 ">---" ("-" 的个数不定) 而行尾多余的空白字符显示成 "-"
set listchars=tab:>-,trail:-