Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1181717
  • 博文数量: 181
  • 博客积分: 4968
  • 博客等级: 上校
  • 技术积分: 1867
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-13 21:52
文章分类

全部博文(181)

文章存档

2015年(2)

2013年(6)

2012年(22)

2011年(41)

2010年(27)

2009年(51)

2008年(32)

我的朋友

分类: LINUX

2011-06-23 15:15:41

Linux下文件编码转换方法备忘
2009年05月08日 星期五 16:29
    经常在window和linux系统之间切换的人都知道,编码问题是一个常见问题,尤其是如果你使用secureCRT的话,中文的显示或者数据存储往往需要转码才能达到需求的。

    目前来说,用的比较多的是iconv工具,debian下有自带的deb包,直接安装即可。使用方法看man也很简单。
$ iconv --help

-f ENCODING, --from-code=ENCODING
                              the encoding of the input
-t ENCODING, --to-code=ENCODING
                              the encoding of the output

$ iconv -f GBK -t utf-8 urfile
此命令可以将GBK编码的文件转换为utf-8,并打印转换结果,目前我所使用的iconv (GNU libiconv 1.11)不支持-o参数,如果是需要输出结果到文件中,重定向即可。

你也可以使用$ iconv -l查看所支持的转换编码格式。与此同时,你需要查询文件编码,用file查询即可。


同时还有一个不错的工具,enca,在debian中也有自带的包,安装非常方便,目前转换中文相关的编码,我都用这个居多。
$ enca -L zh_CN 01_gbk.txt
Simplified Chinese National Standard; GB2312 #检查文件的编码

enca -L zh_CN -x UTF-8 01_gbk.txt 将文件编码转换为"UTF-8"编码


$ enca -L zh_CN 01_gbk.txt         
Universal transformation format 8 bits; UTF-8 #转换为UTF-8

查看支持的编码可以知道,chinese代表着:GBK BIG5 HZ,所以上述用zh_CN代替
$ enca --list languages
belarussian: CP1251 IBM866 ISO-8859-5 KOI8-UNI maccyr IBM855
bulgarian: CP1251 ISO-8859-5 IBM855 maccyr ECMA-113
      czech: ISO-8859-2 CP1250 IBM852 KEYBCS2 macce KOI-8_CS_2 CORK
   estonian: ISO-8859-4 CP1257 IBM775 ISO-8859-13 macce baltic
   croatian: CP1250 ISO-8859-2 IBM852 macce CORK
hungarian: ISO-8859-2 CP1250 IBM852 macce CORK
lithuanian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic
    latvian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic
     polish: ISO-8859-2 CP1250 IBM852 macce ISO-8859-13 ISO-8859-16 baltic CORK
    russian: KOI8-R CP1251 ISO-8859-5 IBM866 maccyr
     slovak: CP1250 ISO-8859-2 IBM852 KEYBCS2 macce KOI-8_CS_2 CORK
    slovene: ISO-8859-2 CP1250 IBM852 macce CORK
ukrainian: CP1251 IBM855 ISO-8859-5 CP1125 KOI8-U maccyr
    chinese: GBK BIG5 HZ
       none:

对于文件名的情况,也可以使用convmv进行类似命令的操作。不明白的地方问问man吧。

阅读(747) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~