【Linux-Tips】SecureCRT连接Linux后文件编码问题

【Linux-Tips】SecureCRT连接Linux后文件编码问题

时间:2015-04-07 06:04:11      作者:vaster      标签: Linux vim 编码      分类: Linux Linux基础

问题:中文字符显示出来成了乱码(当前系统编码为UTF-8,CRT编码为UTF-8)

原则:保持文件、系统、CRT三者的编码格式一致即可

处理过程:

方法1:

a、查看文件的编码格式

在Vim中可以直接查看文件编码

:set fileencodingfileencoding=latin1
fileencoding=latin1

使用命令查看文件编码

# file Mysql2.txt Mysql2.txt: ISO-8859 text, with CRLF line terminators
Mysql2.txt: ISO-8859 text, with CRLF line terminators

ISO-8859 又称 Latin或“西欧语言”

b、查看Linux系统使用的编码是什么格式,将系统的编辑修改成en_US(如果看到文件编辑为UTF-8或GBK等其他的,这里改成UTF-8或GBK等即可)

# LANG=en_US
# echo $LANGen_US
en_US

c、 修改并修改Secure CRT的设置(如果看到文件编辑为UTF-8或GBK等其他的,这里改成UTF-8或GBK等即可)

右击--选择session的属性进行查看,修改成default

方法2:

a、查看文件的编码格式

在Vim中可以直接查看文件编码

:set fileencodingfileencoding=latin1
fileencoding=latin1

使用命令查看文件编码

# file Mysql2.txt Mysql2.txt: ISO-8859 text, with CRLF line terminators
Mysql2.txt: ISO-8859 text, with CRLF line terminators

ISO-8859 又称 Latin或“西欧语言”

由于latin1 是一种非常宽松的编码方式,任何一种编码方式得到的文本,用 latin1 进行解码,都不会发生解码失败——当然,解码得到的结果自然也就是理所当然的“乱码”。

让系统能尽量识别文件正确的编码(编辑~/.vimrc文件):

# vim ~/.vimrc
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

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

再次查看编码

:set fileencodingfileencoding=cp936
fileencoding=cp936

这时,应该可以看到vim的时候能正常显示中文了,但是cat的时候还是不行

b、给文件转码,将cp938格式转化为UTF-8(直接从latin1转的时候不会报错,但转出来会还是乱的)         

# iconv -f cp936 -t UTF-8 Mysql2.txt -o Mysql8.txt   
 -f : from
 -t : to-o: output
 -o: output

c、查看Linux系统使用的编码是什么格式,将系统的编辑修改成en_US.UTF-8

# LANG=en_US.UTF-8
# echo $LANGen_US.UTF-8
en_US.UTF-8

d、 修改并修改Secure CRT的设置

右击--选择session的属性进行查看,修改成UTF-8

时间:2015-04-07 06:04:11      作者:vaster      标签: Linux vim 编码      分类: Linux Linux基础
  • 分享到:
  • 微博
  • QQ空间
  • 腾讯微博
  • 微信

Copyright © 2015 Gitblog | Proudly powered by Gitblog.