前几日将服务器从RH9升级到RHEL4, 由于中文Locale编码从GBK变成了当前日益流行的UTF-8编码, 导致以前的中文目录名都变成了乱码。在网上搜了搜, 找到一个很不错的软件: convmv, 它可以实现Linux下文件目录名编码的互转。下载地址和操作手册都在这个网站里:
convmv – converts filenames from one encoding to another
我亲自试了试, 还是很不错, 我转换编码时使用的命令是
#convmv -f gbk -t utf8 /YourDictionary -r –notest –nosmart
即将/YourDictionary目录中的文件目录名从(-f) GBK编码转换到(-t) UTF-8编码, (-r)表示目录内递归操作, 而(–nosmart)指对已经是UTF-8编码的文件目录跳过不进行操作。转化后名称显示在X和终端下都正常了, 不过在远程Windows下用FTP、SSH等就又有些问题了, 看来鱼与熊掌不可兼得啊! UTF-8可能成为以后的中文标准, 而GBK类编码又是当前之最流行, 而且Windows与Unix类系统从骨子里就透着矛盾与冲突, 没有办法完美解决, 也就只好退而求其次了。现在我的做法是,对那些本地个人的文件,为了方便使用,将其转化为UTF-8编码,而对那些网络共享文件,则保留其GBK编码,一切为了方便而为之,也许以后还有更好的办法,学习中……