免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1294 | 回复: 5
打印 上一主题 下一主题

[Linux] 字符编码问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-31 09:26 |只看该作者 |倒序浏览
一文件,我用windows下的vi打开汉字的地方是汉字,unix下是类似这种东西<b4><fa><bf>许多尖括号。我用set fileencoding查看,后面是空的,想请教怎么在unix下把尖括号变回汉字?

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
2 [报告]
发表于 2014-03-31 11:15 |只看该作者
dos2unix  ?

论坛徽章:
4
白羊座
日期:2013-09-17 21:59:30技术图书徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40双子座
日期:2013-12-17 18:26:39
3 [报告]
发表于 2014-03-31 13:30 |只看该作者
回复 1# hhdzhu
应当是文件的编码为gbk或gb2312导致的,你可以安装一下enca,然后用enca filename看看文件的编码。
解决vim打开问题可以用以下的方法(假设文件为gbk):
方法1. 将文件转换为utf8:
  1. iconv -f gbk -t utf8 oldfile > newfile
复制代码
方法2.  在.vimrc文件添加(我的配置):
  1. let &termencoding = &encoding
  2. set fileencodings=ucs-bom,utf-8,gb2312,cp936,gb18030,big5,euc-jp,euc-kr,latin1
复制代码
方法3. 安装fencview插件
方法4. 对于已经打开的vim中,使用以下命令打开文件
  1. e ++enc=gbk filename
复制代码

论坛徽章:
0
4 [报告]
发表于 2014-03-31 23:37 |只看该作者
回复 3# 井蛙夏虫


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

论坛徽章:
4
白羊座
日期:2013-09-17 21:59:30技术图书徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40双子座
日期:2013-12-17 18:26:39
5 [报告]
发表于 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命令可以在这两者之间做转换

   

论坛徽章:
0
6 [报告]
发表于 2014-04-01 12:36 |只看该作者
回复 5# 井蛙夏虫


    明白一点了,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP