java中自动识别资料编码是UTF8 or GBK
发布时间: 2012-09-01 09:33:03 作者: rapoo
java中自动识别文件编码是UTF8 or GBK
nsICharsetDetectionObserver cdo=new nsICharsetDetectionObserver() {public void Notify(String charset) {HtmlCharsetDetector.found = true ;System.out.println(“CHARSET = ” + charset);}};/*** 初始化nsDetector()*lang为一个整数,用以提示语言线索,可以提供的语言线索有以下几个:*1. Japanese2. Chinese3. Simplified Chinese4. Traditional Chinese5. Korean6. Dont know (默认)*/nsDetector det = new nsDetector(lang) ;// 设置一个Oberverdet.Init(cdo);BufferedInputStream imp = new BufferedInputStream(url.openStream());byte[] buf = new byte[1024] ;boolean done = false ; //是否已经确定某种字符集boolean isAscii = true ;//假定当前的串是ASCII编码while( (len=imp.read(buf,0,buf.length)) != -1) {// 检查是不是全是ascii字符,当有一个字符不是ASC编码时,则所有的数据即不是ASCII编码了。if (isAscii) isAscii = det.isAscii(buf,len);// 如果不是ascii字符,则调用DoIt方法.if (!isAscii && !done) done = det.DoIt(buf,len, false);//如果不是ASCII,又还没确定编码集,则继续检测。}det.DataEnd();//最后要调用此方法,此时,Notify被调用。if (isAscii) {System.out.println(“CHARSET = ASCII”);found = true ;}if (!found) {//如果没找到,则找到最可能的那些字符集String prob[] = det.getProbableCharsets() ;for(int i=0; i System.out.println(“Probable Charset = ” + prob);}}
?
下载地址:http://jchardet.sourceforge.net
转载地址:http://www.w18.net/viewthread.php?tid=125?
?