convmv , iconv 转乱码

原文: http://blog.163.com/yaning_softwo/blog/static/37837721201171114221611/


下载网址:
http://download.chinaunix.net/download/0002000/1760.shtml
还真不知道怎么来命名这个帖子的标题,我的意思是如何在gbk,gb18030,gb2312,utf8编码中创建的文件实现互相转换。
并不是所有的Linux分发版本都采用一种编码,比如RedFlag默认采用GB18030的编码,当然这还不包括自己修改系统默认编码。因此编码之间转换就很有必要了。
编码转换分为两个部分:内容和文件名。
内容的转换:
iconv显然是最佳工具,目前支持绝大部分编码,而且大部分系统自带。不过对GB18030并不能完全支持。
iconv的基本用法:
iconv -f -t -o orig_file
-f, --from-code=名称       原始文本编码
-t, --to-code=名称         输出编码
-o, --output=FILE          输出文件
当然你可以使用 -l 或者 --list来查查看目前支持的编码。
文件名的转换
显然,convmv是对付这个问题的好工具,他实际上是一个perl程序,不是所有的系统都自带。
使用方法也非常简单:
convmv -f gb2312 -t utf8 -r --notest *
-r表示包含所有子目录,并且连带目录也转换
不加--notest就表示只看看有什么需要转换的,不做实际转换

例子:
假设在“/root/wilson/test”有乱码文件
[root@localhost test]# convmv -f utf8 -t gb2312 -r --notest  *
mv "./4X4閿洏.txt"    "./4X4键盘.txt"
mv "./Linux涓婹t缂栫▼鍏ラ棬鏁欑▼涓枃鐗堜笅杞??.rar"  "./Linux下Qt编程入门教程中文版下载.rar"
mv "./甯哥敤ARM鎸囦护闆嗗強姹囩紪.pdf"  "./常用ARM指令集及汇编.pdf"
Ready!
[root@localhost test]# ls
4X4键盘.txt  Linux下Qt编程入门教程中文版下载.rar  常用ARM指令集及汇编.pdf


=============================================================

其他文章: http://godontop.com/175.html (此博客还有其它不错的文章)

你可能感兴趣的:(convmv , iconv 转乱码)