ä¹±ç åå ï¼ä¸ä¼ æ件çç¼ç å¦æä¸æ¯UTF8ï¼è¯»åå°åå°ï¼ä¸æµè§å¨è®¾ç½®çç¼ç ï¼ä¸è¬ä¸ºUTF8ï¼ä¸ä¸è´ï¼å¯¼è´ä¹±ç
解å³æ¹æ¡ï¼å¨ä¸ä¼ æ件åï¼æ¿å°æå¡å¨ä¸çæ件ï¼ç¶å以å®èªèº«ç¼ç 读åæ件å 容ï¼å以UTF8å½¢å¼åå ¥åæ件ï¼è¦çï¼
public static boolean writeUTF8ByFile(File file){
boolean flag = false;
String utf = txt2String(file);
OutputStreamWriter osw;
try {
osw = new OutputStreamWriter(new FileOutputStream(file),"UTF-8");
osw.write(utf);
osw.close();
flag = true;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}Â
return flag;
}
  private static String txt2String(File file){
    String result = "";
    try{
    // å¦ææ件çç¼ç 为windows-1252ï¼åä¼äº§çä¹±ç ï¼éè¦éæ°è®¾ç½®ä¸ºUnicode
String code = getFileCodeFormat(file);
logger.info("first code = " + code);
if(code.equals("windows-1252")) code = "Unicode";
 // å¦ææ件çç¼ç 为Big5ï¼åä¼äº§çä¹±ç ï¼éè¦éæ°è®¾ç½®ä¸ºGB18030
if(code.equals("Big5")) code = "GB18030";
logger.info("last code = " + code);
InputStreamReader isr = new InputStreamReader(new FileInputStream(
file), code);
      BufferedReader br = new BufferedReader(isr);//æé ä¸ä¸ªBufferedReaderç±»æ¥è¯»åæ件
      String s = null;
      while((s = br.readLine())!=null){//使ç¨readLineæ¹æ³ï¼ä¸æ¬¡è¯»ä¸è¡
        result = result + "\r\n" +s;
      }
      br.close();  Â
    }catch(Exception e){
    logger.error(e.getMessage());
    }
    result = result.trim();
    logger.info("file content : " + result);
    return result;
  }
  Â
 Â
private static String getFileCodeFormat(File file) throws Exception{
Â
CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance(); Â
Â
detector.add(new ParsingDetector(false)); Â Â
 Â
detector.add(JChardetFacade.getInstance()); Â
//ASCIIDetectorç¨äºASCIIç¼ç æµå® Â
detector.add(cpdetector.io.ASCIIDetector.getInstance()); Â
//UnicodeDetectorç¨äºUnicode家æç¼ç çæµå® Â
detector.add(cpdetector.io.UnicodeDetector.getInstance()); Â
java.nio.charset.Charset charset = null; Â
try { Â
   charset = detector.detectCodepage(file.toURL()); Â
} catch (Exception ex) {ex.printStackTrace();} Â
if(charset!=null){ Â
  // System.out.println(file.getName()+"ç¼ç æ¯ï¼"+charset.name()); Â
}else {Â
 // System.out.println(file.getName()+"æªç¥");
}
return charset.name();
}