hhdzhu 发表于 2014-03-31 09:26

字符编码问题

一文件,我用windows下的vi打开汉字的地方是汉字,unix下是类似这种东西<b4><fa><bf>许多尖括号。我用set fileencoding查看,后面是空的,想请教怎么在unix下把尖括号变回汉字?

不能超过15字 发表于 2014-03-31 11:15

dos2unix?

井蛙夏虫 发表于 2014-03-31 13:30

回复 1# hhdzhu
应当是文件的编码为gbk或gb2312导致的,你可以安装一下enca,然后用enca filename看看文件的编码。
解决vim打开问题可以用以下的方法(假设文件为gbk):
方法1. 将文件转换为utf8:iconv -f gbk -t utf8 oldfile > newfile方法2.在.vimrc文件添加(我的配置):let &termencoding = &encoding
set fileencodings=ucs-bom,utf-8,gb2312,cp936,gb18030,big5,euc-jp,euc-kr,latin1方法3. 安装fencview插件
方法4. 对于已经打开的vim中,使用以下命令打开文件e ++enc=gbk filename

hhdzhu 发表于 2014-03-31 23:37

回复 3# 井蛙夏虫


    谢了,你知道这个命令吗:set ff,unix下的是unix,但是编码是gbk。我觉得很奇怪,既然是gbk的,那么fileformat为什么是unix的而不是dos的呢。哦,那个转换的命令用小写不好使啊,换成大写的就好使了。。。iconv -f GBK -t UTF-8 file1 > file2

井蛙夏虫 发表于 2014-04-01 12:23

回复 4# hhdzhu
set ff显示的unix和dos指的是行分割符的不同。windows下的是\r\n这两个字符,unix下是\n。它与编码是两个概念
set ff是unix时,指的是现在文件用\n作为行分割符,而dos指的是使用\r\n作为分割符。
对于使用\r\n作为分割符的文件,你使用:e ++ff=unix filename打开时,可以看见每行结尾有个'^M'。
2L说的dos2unix和unix2dos命令可以在这两者之间做转换

   

hhdzhu 发表于 2014-04-01 12:36

回复 5# 井蛙夏虫


    明白一点了,:)
页: [1]
查看完整版本: 字符编码问题