## com.gargoylesoftware.htmlunit.util
Class EncodingSniffer

    java.lang.Object
      com.gargoylesoftware.htmlunit.util.EncodingSniffer

    public final class EncodingSniffer

extends java.lang.Object

Sniffs encoding settings from HTML, XML or other content. The HTML encoding sniffing algorithm is based on the HTML5 encoding sniffing algorithm.

Version:
  $Revision: 4578 $
Author:
  Daniel Gredler

Method Summary
`static java.lang.String` `sniffEncoding(java.util.List<org.apache.commons.httpclient.NameValuePair> headers, java.io.InputStream content)` If the specified content is HTML content, this method sniffs encoding settings from the specified HTML content and/or the corresponding HTTP headers based on the HTML5 encoding sniffing algorithm.
`static java.lang.String` `sniffHtmlEncoding(java.util.List<org.apache.commons.httpclient.NameValuePair> headers, java.io.InputStream content)` Sniffs encoding settings from the specified HTML content and/or the corresponding HTTP headers based on the HTML5 encoding sniffing algorithm.
`static java.lang.String` `sniffUnknownContentTypeEncoding(java.util.List<org.apache.commons.httpclient.NameValuePair> headers, java.io.InputStream content)` Sniffs encoding settings from the specified content of unknown type by looking for `Content-Type` information in the HTTP headers and Byte Order Mark information in the content.
`static java.lang.String` `sniffXmlEncoding(java.util.List<org.apache.commons.httpclient.NameValuePair> headers, java.io.InputStream content)` Sniffs encoding settings from the specified XML content and/or the corresponding HTTP headers using a custom algorithm.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### sniffEncoding

    public static java.lang.String sniffEncoding(java.util.List<org.apache.commons.httpclient.NameValuePair> headers,
                                                 java.io.InputStream content)
                                          throws java.io.IOException

  If the specified content is HTML content, this method sniffs encoding settings from the specified HTML content and/or the corresponding HTTP headers based on the HTML5 encoding sniffing algorithm.

  If the specified content is XML content, this method sniffs encoding settings from the specified XML content and/or the corresponding HTTP headers using a custom algorithm.

  Otherwise, this method sniffs encoding settings from the specified content of unknown type by looking for `Content-Type` information in the HTTP headers and Byte Order Mark information in the content.

  Note that if an encoding is found but it is not supported on the current platform, this method returns `null`, as if no encoding had been found.

  Parameters:
    `headers` - the HTTP response headers sent back with the content to be sniffed
    `content` - the content to be sniffed
  Returns:
    the encoding sniffed from the specified content and/or the corresponding HTTP headers, or `null` if the encoding could not be determined
  Throws:
    `java.io.IOException` - if an IO error occurs

### sniffHtmlEncoding

    public static java.lang.String sniffHtmlEncoding(java.util.List<org.apache.commons.httpclient.NameValuePair> headers,
                                                     java.io.InputStream content)
                                              throws java.io.IOException

  Sniffs encoding settings from the specified HTML content and/or the corresponding HTTP headers based on the HTML5 encoding sniffing algorithm.

  Note that if an encoding is found but it is not supported on the current platform, this method returns `null`, as if no encoding had been found.

  Parameters:
    `headers` - the HTTP response headers sent back with the HTML content to be sniffed
    `content` - the HTML content to be sniffed
  Returns:
    the encoding sniffed from the specified HTML content and/or the corresponding HTTP headers, or `null` if the encoding could not be determined
  Throws:
    `java.io.IOException` - if an IO error occurs

### sniffXmlEncoding

    public static java.lang.String sniffXmlEncoding(java.util.List<org.apache.commons.httpclient.NameValuePair> headers,
                                                    java.io.InputStream content)
                                             throws java.io.IOException

  Sniffs encoding settings from the specified XML content and/or the corresponding HTTP headers using a custom algorithm.

  Note that if an encoding is found but it is not supported on the current platform, this method returns `null`, as if no encoding had been found.

  Parameters:
    `headers` - the HTTP response headers sent back with the XML content to be sniffed
    `content` - the XML content to be sniffed
  Returns:
    the encoding sniffed from the specified XML content and/or the corresponding HTTP headers, or `null` if the encoding could not be determined
  Throws:
    `java.io.IOException` - if an IO error occurs

### sniffUnknownContentTypeEncoding

    public static java.lang.String sniffUnknownContentTypeEncoding(java.util.List<org.apache.commons.httpclient.NameValuePair> headers,
                                                                   java.io.InputStream content)
                                                            throws java.io.IOException

  Sniffs encoding settings from the specified content of unknown type by looking for `Content-Type` information in the HTTP headers and Byte Order Mark information in the content.

  Note that if an encoding is found but it is not supported on the current platform, this method returns `null`, as if no encoding had been found.

  Parameters:
    `headers` - the HTTP response headers sent back with the content to be sniffed
    `content` - the content to be sniffed
  Returns:
    the encoding sniffed from the specified content and/or the corresponding HTTP headers, or `null` if the encoding could not be determined
  Throws:
    `java.io.IOException` - if an IO error occurs

Copyright © 2002-2011 Gargoyle Software Inc.. All Rights Reserved.