Linux环境下轻松搞定文件编码

发表于:2010-8-17 11:07

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:杨志刚    来源:51Testing软件测试网采编

  摘要:有很多时候Windows中的文件需要会在Linux系统环境下运行,但是会出现乱码的情况。同时还会出现编码转换的工作。基于以上情况,本文将就在linux下查看和转换文件的编码进行说明。

  通常来说,Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,所以Linux下打开windows的文件会有乱码的情况。另外,有时要将文件进行编码转换,如将简体中文转换为繁体中文。

  基于以上情况,本文将就在linux下查看和转换文件的编码进行说明。

  1.查看文件的编码

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

:set fileencoding    即可显示文件编码格式。

  2)enca查看文件编码

# enca filename        直接用enca加文件名查看
# enca -L zh_CN filename
注:enca对某些GBK编码的文件识别不是很好,识别时会出现:unrecognized encoding.

  2.转换文件的编码

  1)在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式

:set fileencoding=utf-8

  2)enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,如:

# enconv -L zh_CN -x UTF-8 filename
# enca -L zh_CN -x UTF-8 < file1 > file2        不覆盖原文件

  3)iconv 转换,iconv的命令格式如下:

# iconv -f encoding -t encoding inputfile
# iconv –l    查询可用编码
# for i in `find ./ -name *.html`;do echo $i;iconv –f gb2312 –t big5 $i –o /tmp/iconv.tmp;mv /tmp/iconv.tmp $i;done

  批量转换文件编码实例之一

  3.文件名编码转换

  Linux与windows间拷贝文件,有时文件名会出现乱码,是因为Windows的文件名中文编码默认为GBK,而Linux默认的文件名为UTF8。在Linux中有个工具,convmv,可以对文件名进行GBK和UTF的相互转换。

  用法:

Convmv –f 源编码 –t 新编码 [option] filename

  安装enca

  下载相关rpm包。地址(http://rpmfind.net/linux/RPM/dag/redhat/el5/i386/

  我下载的是:enca-1.10-1.el5.rf.i386.rpm和enca-devel-1.10-1.el5.rf.i386.rpm

  安装:

# rpm -ivh enca-1.10-1.el5.rf.i386.rpm
# rpm -ivh  enca-devel-1.10-1.el5.rf.i386.rpm

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号