public final class StandardHtmlEncodingDetector extends Object implements EncodingDetector
https://html.spec.whatwg.org/multipage/parsing.html#the-input-byte-stream
If a resource was fetched over HTTP, then HTTP headers should be added to tika metadata
when using detect(java.io.InputStream, org.apache.tika.metadata.Metadata)
, especially HttpHeaders.CONTENT_TYPE
, as it may contain charset information.
This encoding detector may return null if no encoding is detected.
It is meant to be used inside a CompositeDetector
.
For instance:
EncodingDetector detector = new CompositeDetector(
new StandardHtmlEncodingDetector(),
new Icu4jEncodingDetector()
);
Constructor and Description |
---|
StandardHtmlEncodingDetector() |
Modifier and Type | Method and Description |
---|---|
Charset |
detect(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.
|
public Charset detect(InputStream input, Metadata metadata) throws IOException
EncodingDetector
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.
detect
in interface EncodingDetector
input
- text document input stream, or null
metadata
- input metadata for the documentnull
IOException
- if the document input stream could not be readpublic int getMarkLimit()
@Field public void setMarkLimit(int markLimit)
Copyright © 2007–2021 The Apache Software Foundation. All rights reserved.