/**
*
*/
package org.owasp.webscarab.util;
import org.mozilla.intl.chardet.nsDetector;
import org.mozilla.intl.chardet.nsICharsetDetectionObserver;
import org.mozilla.intl.chardet.nsPSMDetector;
/**
* @author rdawes
*
*/
public class CharsetUtils {
public static String getCharset(byte[] bytes) {
nsDetector det = new nsDetector(nsPSMDetector.ALL);
CharsetListener listener = new CharsetListener();
det.Init(listener);
boolean isAscii = det.isAscii(bytes,bytes.length);
// DoIt if non-ascii and not done yet.
if (!isAscii)
det.DoIt(bytes,bytes.length, false);
det.DataEnd();
if (isAscii) return "ASCII";
return listener.getCharset();
}
private static class CharsetListener implements nsICharsetDetectionObserver {
private String charset = null;
public void Notify(String charset) {
this.charset = charset;
}
public String getCharset() {
return this.charset;
}
}
}