String result ="";
try {
/*------------------------------------------------
detector是探測器,它把探測任務交給具體的探測實現類的實例完成。
cpDetector內置了一些常用的探測實現類,這些探測實現類的實例可以通過add方法
加進來,如ParsingDetector、 JChardetFacade、ASCIIDetector、UnicodeDetector。
detector按照“誰最先返回非空的探測結果,就以該結果爲準”的原則返回探測到的
字符集編碼。
---------------------------------------------------*/
CodepageDetectorProxy proxy = CodepageDetectorProxy.getInstance();
/*------------------------------------------------------
ParsingDetector可用於檢查HTML、XML等文件或字符流的編碼,構造方法中的參數用於
指示是否顯示探測過程的詳細信息,爲false不顯示。
-------------------------------------------------------*/
proxy.add(new ParsingDetector(false));
proxy.add(JChardetFacade.getInstance());
proxy.add(ASCIIDetector.getInstance());
proxy.add(UnicodeDetector.getInstance());
/*----------------------------------------------
JChardetFacade封裝了由Mozilla組織提供的JChardet,它可以完成大多數文件的編碼
測定。所以,一般有了這個探測器就可滿足大多數項目的要求,如果你還不放心,可以
再多加幾個探測器,比如下面的ASCIIDetector、UnicodeDetector等。
---------------------------------------------------------*/
Charset cset = null;
cset =proxy.detectCodepage(f.toURL());
if(cset !=null){
result = cset.name();
}else{
System.out.println("查不到對應的編碼格式");
}
} catch (Exception e) {
// TODO: handleexception
System.out.println(" 調用getFileCodeByPlugin 方法 產生異常 ");
e.printStackTrace();
}
return result;
}