最近在做一個項目,需要從以前的另外一個項目遷移大量源代碼過來,但是由於另一個項目采用GBK編碼格式,而新項目采用的UTF-8編碼格式,如果直接把Java源代碼復制到Eclipse中所有的中文信息都出現亂碼。
將文本文件的編碼格式從GBK轉UTF-8的方式有很多,比較早以前我處理方式都是自己寫程序,從文本文件中用GBK編碼讀取數據,轉為String類型,然后通過UTF-8編碼重新寫入文本文件實現轉碼,現在經常使用 Apache Common 組件,用commons-io.jar實現文件的讀取和寫入,代碼如下:
(commons-io 下載見:http://commons.apache.org/io/download_io.cgi)
//GBK編碼格式源碼路徑
String srcDirPath = "D:\\dev\\workspace\\masdev\\mas\\src";
//轉為UTF-8編碼格式源碼路徑
String utf8DirPath = "D:\\UTF8\\src";
//獲取所有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"));
}
很簡單的幾行代碼,就可以批量將GBK格式的java文件轉為UTF-8格式。 基本上所有文本文件的編碼轉換都可以采用這種方式。
轉了好幾載...(親測可用2013/07/16)