commons-file/src/main/java/info/monitorenter/cpdetector/io/ParsingDetector.java
public Charset detectCodepage(final InputStream in, final int length) throws IOException {
    EncodingLexer lexer;
    EncodingParser parser;
    Charset charset = null;
    String csName = null;
    InputStream limitedInputStream = new LimitedInputStream(in, length);
    if (this.m_verbose) {
      System.out
          .println("  parsing for html-charset/xml-encoding attribute with codepage: US-ASCII");
    }
    try {
      lexer = new EncodingLexer(new InputStreamReader(limitedInputStream, "US-ASCII"));
      parser = new EncodingParser(lexer);
      csName = parser.htmlDocument();
      if (csName != null) {
        // TODO: prepare document with illegal value, then test: Decide to catch
        // exception and return
        // UnsupportedCharset.
        try {
          charset = Charset.forName(csName);
        } catch (UnsupportedCharsetException uce) {
          charset = UnsupportedCharset.forName(csName);
        }
      } else {
        charset = UnknownCharset.getInstance();
      }
    } catch (ANTLRException ae) {
      if (this.m_verbose) {
        System.out.println("  ANTLR parser exception: " + ae.getMessage());
      }
    } catch (Exception deepdown) {
      if (this.m_verbose) {
        System.out.println("  Decoding Exception: " + deepdown.getMessage()
            + " (unsupported java charset).");
      }
      if (charset == null) {
        if (csName != null) {
          charset = UnsupportedCharset.forName(csName);
        } else {
          charset = UnknownCharset.getInstance();
        }
      }
    }
    return charset;
  }
public Charset detectCodepage(final InputStream in, final int length) throws IOException {
    EncodingLexer lexer;
    EncodingParser parser;
    Charset charset = null;
    String csName = null;
    InputStream limitedInputStream = new LimitedInputStream(in, length);
    if (this.m_verbose) {
      System.out
          .println("  parsing for html-charset/xml-encoding attribute with codepage: US-ASCII");
    }
    try {
      lexer = new EncodingLexer(new InputStreamReader(limitedInputStream, "US-ASCII"));
      parser = new EncodingParser(lexer);
      csName = parser.htmlDocument();
      if (csName != null) {
        // TODO: prepare document with illegal value, then test: Decide to catch
        // exception and return
        // UnsupportedCharset.
        try {
          charset = Charset.forName(csName);
        } catch (UnsupportedCharsetException uce) {
          charset = UnsupportedCharset.forName(csName);
        }
      } else {
        charset = UnknownCharset.getInstance();
      }
    } catch (ANTLRException ae) {
      if (this.m_verbose) {
        System.out.println("  ANTLR parser exception: " + ae.getMessage());
      }
    } catch (Exception deepdown) {
      if (this.m_verbose) {
        System.out.println("  Decoding Exception: " + deepdown.getMessage()
            + " (unsupported java charset).");
      }
      if (charset == null) {
        if (csName != null) {
          charset = UnsupportedCharset.forName(csName);
        } else {
          charset = UnknownCharset.getInstance();
        }
      }
    }
    return charset;
  }
public Charset detectCodepage ( final InputStream in , final int length ) throws IOException { EncodingLexer lexer ; EncodingParser parser ; Charset charset = null ; String csName = null ; InputStream limitedInputStream = new LimitedInputStream ( in , length ) ; if ( this . m_verbose ) { System . out . println ( "  parsing for html-charset/xml-encoding attribute with codepage: US-ASCII" ) ; } try { lexer = new EncodingLexer ( new InputStreamReader ( limitedInputStream , "US-ASCII" ) ) ; parser = new EncodingParser ( lexer ) ; csName = parser . htmlDocument ( ) ; if ( csName != null ) { // TODO: prepare document with illegal value, then test: Decide to catch // exception and return // UnsupportedCharset. try { charset = Charset . forName ( csName ) ; } catch ( UnsupportedCharsetException uce ) { charset = UnsupportedCharset . forName ( csName ) ; } } else { charset = UnknownCharset . getInstance ( ) ; } } catch ( ANTLRException ae ) { if ( this . m_verbose ) { System . out . println ( "  ANTLR parser exception: " + ae . getMessage ( ) ) ; } } catch ( Exception deepdown ) { if ( this . m_verbose ) { System . out . println ( "  Decoding Exception: " + deepdown . getMessage ( ) + " (unsupported java charset)." ) ; } if ( charset == null ) { if ( csName != null ) { charset = UnsupportedCharset . forName ( csName ) ; } else { charset = UnknownCharset . getInstance ( ) ; } } } return charset ; }
/*
(non-Javadoc)

@see cpdetector.io.ICodepageDetector#detectCodepage(java.io.InputStream)
/ * ( non - Javadoc )