在Wingdows里,中文编码一般是GBK,而在Linux一般采取UTF-8,所以在Linux打开中文文本的时候经常是乱码,所以要进行编码转换。

文件内容编码转换

有一傻瓜式终端工具enca可以轻易转码。
此工具需要另外安装,使用非常简单。

1
enca -L LANGUAGE files

此命令用于查看文件编码,其中LANGUAGE指定文本语言,files则是想要测试的文件。比如

1
enca -L zh_CN test.txt

想要转换编码则是,
1
enca -L zh_CN -x UTF-8 test.txt

则可文件编码转为UTF-8

文件名编码转换

有时后一些中文名字的文件在Linux下名称会乱码,这类文件一般在Widows下命名,编码多为GBK,所以在Linux乱码,而convmv则可以进行文件名编码转换。

1
convmv -f original_encoding -t target_encoding files

这个命令并不能真正重命名,只会显示转换之后的效果,如果发现确实没有差错,可以--notest进行真正重命名。
另外convmv还有一个功能就是,将网址里的编码转换回来,比如将%20转换成空格,只需添加--unescape即可。