Ubuntu下进行文件编码的互相转换


Ubuntu下默认文件编码是utf-8的,一般的编辑器也都支持gbk,gb2312编码,但有些时候还是需要把文档从默认的gbk格式转换成utf-8格式的,比如网上下载的电子书在手机上看会出现半个字,转成utf-8就没这个问题了。

一般转换编码都是用iconv命令来转换,命令格式如下

$iconv -f gb18030 -t utf-8 file1.txt > file2.txt

说实话这个命令不好使,一方面容易重复转换,另一方面不支持通配符,无法成批转换,文件少了还好说,要是一大堆文件岂不是要累死?

于是在google上淘宝,淘得一个更好的傻瓜型命令行工具enca,它不但能智能的识别文件的编码,而且还支持成批转换。

1.安装

$sudo apt-get install enca

2.转换

命令格式如下

$enca -L 当前语言 -x 目标编码 文件名

例如要把当前目录下的所有文件都转成utf-8

$enca -L zh_CN -x utf-8 *

很简单吧。

不过用的时候发现有一部分文件无法传转,具体原因不祥,不过enca会把无法转换的文件告诉你的。对于这些不能转的文件,可以用gedit另存为的方式转,虽然这法笨点,但挺好使的。

相关内容