转自:https://blog.csdn.net/jj88888/article/details/12711291
问题场景:由于老项目采用GBK编码格式,而新项目采用的UTF-8编码格式,如果直接把Java源代码复制到Eclipse中所有的中文信息都出现乱码。将文本文件的编码格式从GBK转UTF-8的方式有很多,
比较早以前我处理方式都是自己写程序,从文本文件中用GBK编码读取数据,转为String类型,然后通过UTF-8编码重新写入文本文件实现转码,现在经常使用 Apache Common 组件,用commons-io.jar实现文件的
读取和写入,代码如下:
package utils; import java.io.File; import java.io.IOException; import java.util.Collection; import org.apache.commons.io.FileUtils; /** * 修改文件编码 * @author Administrator * */ public class FileEncodeTest { public static void main(String[] args) throws IOException { //GBK编码格式源码路径 String srcDirPath = "D:\\开发\\my_work\\mts_web\\src"; //转为UTF-8编码格式源码路径 String utf8DirPath = "D:\\开发\\my_work\\mts_web\\src_utf8"; //获取所有java文件 Collection<File> javaGbkFileCol = FileUtils.listFiles(new File(srcDirPath), new String[] { "java" }, true); for (File javaGbkFile : javaGbkFileCol) { //UTF8格式文件路径 String utf8FilePath = utf8DirPath + javaGbkFile.getAbsolutePath().substring(srcDirPath.length()); //使用GBK读取数据,然后用UTF-8写入数据 FileUtils.writeLines(new File(utf8FilePath), "UTF-8", FileUtils.readLines(javaGbkFile, "GBK")); } } }
maven依赖
<!-- 文件编码转码用到(如gbk转utf8) --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency>