java文件轉碼


完整項目帶lib

參考
http://toyota2006.iteye.com/blog/540316
判斷編碼
   
   
   
           
  1. package change;
  2. import info.monitorenter.cpdetector.io.CodepageDetectorProxy;
  3. import info.monitorenter.cpdetector.io.JChardetFacade;
  4. import java.io.File;
  5. import java.nio.charset.Charset;
  6. public class EncodingUtil {
  7. public static String getFileEncoding(String filePath) {
  8. File file = new File(filePath);
  9. return getFileCharacterEnding(file);
  10. }
  11. /**
  12. * Try to get file character ending.
  13. * </p>
  14. * <strong>Warning: </strong>use cpDetector to detect file's encoding.
  15. *
  16. * @param file
  17. * @return
  18. */
  19. public static String getFileCharacterEnding(File file) {
  20. String fileCharacterEnding = "UTF-8";
  21. CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
  22. detector.add(JChardetFacade.getInstance());
  23. Charset charset = null;
  24. // File f = new File(filePath);
  25. try {
  26. charset = detector.detectCodepage(file.toURL());
  27. } catch (Exception e) {
  28. e.printStackTrace();
  29. }
  30. if (charset != null) {
  31. fileCharacterEnding = charset.name();
  32. }
  33. return fileCharacterEnding;
  34. }
  35. public static void main(String[] args) {
  36. System.out.println(getFileEncoding("E:/code/myec_cyh/pingan_dmz/test.java"));
  37. System.out.println(getFileEncoding("E:/code/myec_cyh/pingan_dmz/src/cn/com/benyoyo/manage/core/DBUtil/PublicDao.java"));
  38. }
  39. }
轉碼
   
   
   
           
  1. package change;
  2. import java.io.File;
  3. import java.util.Collection;
  4. import org.apache.commons.io.FileUtils;
  5. /**
  6. *
  7. * @author sgy
  8. *
  9. *如果項目中同時存在有gb2312/gbk和utf8的文件,則將gb2312/gbk的轉為utf8
  10. */
  11. public class ChangeEncoding {
  12. public static void main(String[] args) throws Exception {
  13. //GBK編碼格式源碼路徑
  14. String srcDir = "E:\\pingan_dmz";
  15. //轉為UTF-8編碼格式源碼路徑
  16. String targetDirectory = "E:\\code\\myec_cyh\\pingan_dmz";
  17. //獲取所有java文件
  18. Collection<File> srcDirFileCol = FileUtils.listFiles(new File(srcDir), new String[]{"java"}, true);
  19. for (File srcFile : srcDirFileCol) {
  20. String srcFilePath = srcFile.getAbsolutePath();
  21. //當為GB2312時才會轉換為urf8
  22. String srcEncoding = EncodingUtil.getFileEncoding(srcFilePath);
  23. System.out.print(srcFile.getName()+":"+srcEncoding+" ");
  24. if ("GB2312" == srcEncoding || "GBK" == srcEncoding) {
  25. System.out.println();
  26. System.out.print(srcFile.getAbsolutePath());
  27. //UTF8格式文件路徑
  28. String targetFilePath = targetDirectory+srcFilePath.substring(srcDir.length());
  29. //使用GBK讀取數據,然后用UTF-8寫入數據
  30. FileUtils.writeLines(new File(targetFilePath), "UTF-8", FileUtils.readLines( srcFile, srcEncoding));
  31. }
  32. }
  33. }
  34. }





附件列表

     


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM