java文件转码
完整项目带lib
参考
http://toyota2006.iteye.com/blog/540316
判断编码
package change;import info.monitorenter.cpdetector.io.CodepageDetectorProxy;import info.monitorenter.cpdetector.io.JChardetFacade;import java.io.File;import java.nio.charset.Charset;public class EncodingUtil {public static String getFileEncoding(String filePath) {File file = new File(filePath);return getFileCharacterEnding(file);}/*** Try to get file character ending.* </p>* <strong>Warning: </strong>use cpDetector to detect file's encoding.** @param file* @return*/public static String getFileCharacterEnding(File file) {String fileCharacterEnding = "UTF-8";CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();detector.add(JChardetFacade.getInstance());Charset charset = null;// File f = new File(filePath);try {charset = detector.detectCodepage(file.toURL());} catch (Exception e) {e.printStackTrace();}if (charset != null) {fileCharacterEnding = charset.name();}return fileCharacterEnding;}public static void main(String[] args) {System.out.println(getFileEncoding("E:/code/myec_cyh/pingan_dmz/test.java"));System.out.println(getFileEncoding("E:/code/myec_cyh/pingan_dmz/src/cn/com/benyoyo/manage/core/DBUtil/PublicDao.java"));}}
转码
package change;import java.io.File;import java.util.Collection;import org.apache.commons.io.FileUtils;/**** @author sgy**如果项目中同时存在有gb2312/gbk和utf8的文件,则将gb2312/gbk的转为utf8*/public class ChangeEncoding {public static void main(String[] args) throws Exception {//GBK编码格式源码路径String srcDir = "E:\\pingan_dmz";//转为UTF-8编码格式源码路径String targetDirectory = "E:\\code\\myec_cyh\\pingan_dmz";//获取所有java文件Collection<File> srcDirFileCol = FileUtils.listFiles(new File(srcDir), new String[]{"java"}, true);for (File srcFile : srcDirFileCol) {String srcFilePath = srcFile.getAbsolutePath();//当为GB2312时才会转换为urf8String srcEncoding = EncodingUtil.getFileEncoding(srcFilePath);System.out.print(srcFile.getName()+":"+srcEncoding+" ");if ("GB2312" == srcEncoding || "GBK" == srcEncoding) {System.out.println();System.out.print(srcFile.getAbsolutePath());//UTF8格式文件路径String targetFilePath = targetDirectory+srcFilePath.substring(srcDir.length());//使用GBK读取数据,然后用UTF-8写入数据FileUtils.writeLines(new File(targetFilePath), "UTF-8", FileUtils.readLines( srcFile, srcEncoding));}}}}
附件列表


浙公网安备 33010602011771号