Class HtmlEncodingDetector

  • All Implemented Interfaces:
    java.io.Serializable, EncodingDetector

    public class HtmlEncodingDetector
    extends java.lang.Object
    implements EncodingDetector
    Character encoding detector for determining the character encoding of a HTML document based on the potential charset parameter found in a Content-Type http-equiv meta tag somewhere near the beginning. Especially useful for determining the type among multiple closely related encodings (ISO-8859-*) for which other types of encoding detection are unreliable.
    Since:
    Apache Tika 1.2
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.nio.charset.Charset detect​(java.io.InputStream input, Metadata metadata)
      Detects the character encoding of the given text document, or null if the encoding of the document can not be detected.
      int getMarkLimit()  
      void setMarkLimit​(int markLimit)
      How far into the stream to read for charset detection.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • HtmlEncodingDetector

        public HtmlEncodingDetector()
    • Method Detail

      • detect

        public java.nio.charset.Charset detect​(java.io.InputStream input,
                                               Metadata metadata)
                                        throws java.io.IOException
        Description copied from interface: EncodingDetector
        Detects the character encoding of the given text document, or null if the encoding of the document can not be detected.

        If the document input stream is not available, then the first argument may be null. Otherwise the detector may read bytes from the start of the stream to help in encoding detection. The given stream is guaranteed to support the mark feature and the detector is expected to mark the stream before reading any bytes from it, and to reset the stream before returning. The stream must not be closed by the detector.

        The given input metadata is only read, not modified, by the detector.

        Specified by:
        detect in interface EncodingDetector
        Parameters:
        input - text document input stream, or null
        metadata - input metadata for the document
        Returns:
        detected character encoding, or null
        Throws:
        java.io.IOException - if the document input stream could not be read
      • setMarkLimit

        @Field
        public void setMarkLimit​(int markLimit)
        How far into the stream to read for charset detection. Default is 8192.
        Parameters:
        markLimit -
      • getMarkLimit

        public int getMarkLimit()