分类: LINUX
2011-06-23 15:15:41
经常在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吧。 |