您的位置:首页 > 其它

将文本文件中的字符编码从GB2312转换成为UTF-8,包括子目录中的文件

2010-11-20 22:54 281 查看
昨天由于某些原因需要把一个java的项目从windows搬迁到linux进行开发,由于当时在windows上用eclipse建立的项目,建立时没有设置编码,因此项目使用了windows默认的GB2312编码,所以在所有的java源代码中输入的中文内容都时GB2312的内容,当搬到Linux下后默认采用了UTF-8的编码方式,所以看见的源代码中的中文内容就成了乱码,当然如果把linux的默认编码切换成GB2312或者给eclipse提供GB2312的支持也是可以的,只是与linux的使用习惯不太融合。于是便有了题目中的需求。

这里采用如下的一个组合命令来完成这个操作,命令如下:

touch iconv.tmp && find . -iname "*.java" -exec iconv -f gbk -t utf-8 '{}' -o iconv.tmp /; -exec mv iconv.tmp '{}' /;

这条命令能够将当前目录及其子目录中的所有扩展名为java的文本文件进行转码。其思路时通过find对当前目录中的java文件进行列举,然后通过touch产生一个临时文件,使用iconv进行转码,将转码后的内容输出到临时文件,最后使用mv进行文件的移动,并且将移动后的文件名字设为原始文件的名字,这样原始文件就别覆盖了。于是转码工作完成了。

这个笔记值得一记,^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐