Class EncodingSniffer

java.lang.Object
org.omegat.util.EncodingSniffer

public final class EncodingSniffer extends Object
Sniffs encoding settings from HTML, XML or other content. The HTML encoding sniffing algorithm is based on the HTML5 encoding sniffing algorithm. Copyright (c) 2002-2025 Gargoyle Software Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
  • Method Details

    • sniffEncodingFromMetaTag

      public static Charset sniffEncodingFromMetaTag(InputStream is) throws IOException
      Attempts to sniff an encoding from an HTML meta tag in the specified byte array.
      Parameters:
      is - the content stream to check for an HTML meta tag
      Returns:
      the encoding sniffed from the specified bytes, or null if the encoding could not be determined
      Throws:
      IOException - if an IO error occurs
    • extractEncodingFromContentType

      public static Charset extractEncodingFromContentType(String s)
      Extracts an encoding from the specified Content-Type value using the IETF algorithm; if no encoding is found, this method returns null.
      Parameters:
      s - the Content-Type value to search for an encoding
      Returns:
      the encoding found in the specified Content-Type value, or null if no encoding was found
    • sniffEncodingFromXmlDeclaration

      public static Charset sniffEncodingFromXmlDeclaration(InputStream is) throws IOException
      Searches the specified XML content for an XML declaration and returns the encoding if found, otherwise returns null.
      Parameters:
      is - the content stream to check for the charset declaration
      Returns:
      the encoding of the specified XML content, or null if it could not be determined
      Throws:
      IOException - if an IO error occurs
    • sniffEncodingFromCssDeclaration

      public static Charset sniffEncodingFromCssDeclaration(InputStream is) throws IOException
      Parses and returns the charset declaration at the start of a css file if any, otherwise returns null.

      e.g.

       @charset "UTF-8"
       
      Parameters:
      is - the input stream to parse
      Returns:
      the charset declaration at the start of a css file if any, otherwise returns null.
      Throws:
      IOException - if an IO error occurs
    • toCharset

      public static Charset toCharset(String charsetName)
      Returns Charset if the specified charset name is supported on this platform.
      Parameters:
      charsetName - the charset name to check
      Returns:
      Charset if the specified charset name is supported on this platform