Class CharsetHelper


  • @Immutable
    public final class CharsetHelper
    extends Object
    Whole lotta charset management routines.
    Author:
    Philip Helger
    • Method Detail

      • getCharsetFromName

        @Nonnull
        public static Charset getCharsetFromName​(@Nonnull @Nonempty
                                                 String sCharsetName)
        Resolve the charset by the specified name. The difference to Charset.forName(String) is, that this method has no checked exceptions but only unchecked exceptions.
        Parameters:
        sCharsetName - The charset to be resolved. May neither be null nor empty.
        Returns:
        The Charset object
        Throws:
        IllegalArgumentException - If the charset could not be resolved.
      • getCharsetFromNameOrNull

        @Nullable
        public static Charset getCharsetFromNameOrNull​(@Nullable
                                                       String sCharsetName)
        Resolve the charset by the specified name. The difference to Charset.forName(String) is, that this method throws no exceptions.
        Parameters:
        sCharsetName - The charset to be resolved. May be null or empty.
        Returns:
        The Charset object or null if no such charset was found.
      • getCharsetFromNameOrDefault

        @Nullable
        public static Charset getCharsetFromNameOrDefault​(@Nullable
                                                          String sCharsetName,
                                                          @Nullable
                                                          Charset aDefault)
        Resolve the charset by the specified name. The difference to Charset.forName(String) is, that this method throws no exceptions.
        Parameters:
        sCharsetName - The charset to be resolved. May be null or empty.
        aDefault - the default charset to be returned if none is provided. May be null.
        Returns:
        The Charset object or the provided default if no such charset was found.
      • getUTF8ByteCount

        @Nonnegative
        public static int getUTF8ByteCount​(@Nullable
                                           String s)
        Get the number of bytes necessary to represent the passed string as an UTF-8 string.
        Parameters:
        s - The string to count the length. May be null or empty.
        Returns:
        A non-negative value.
      • getUTF8ByteCount

        @Nonnegative
        public static int getUTF8ByteCount​(@Nullable
                                           char[] aChars)
        Get the number of bytes necessary to represent the passed char array as an UTF-8 string.
        Parameters:
        aChars - The characters to count the length. May be null or empty.
        Returns:
        A non-negative value.
      • getUTF8ByteCount

        @Nonnegative
        public static int getUTF8ByteCount​(char c)
      • getUTF8ByteCount

        @Nonnegative
        public static int getUTF8ByteCount​(@Nonnegative
                                           int c)
        Get the number of bytes necessary to represent the passed character.
        Parameters:
        c - The character to be evaluated.
        Returns:
        A non-negative value.
      • getInputStreamAndCharsetFromBOM

        @Nonnull
        public static CharsetHelper.InputStreamAndCharset getInputStreamAndCharsetFromBOM​(@Nonnull @WillNotClose
                                                                                          InputStream aIS)
        If a BOM is present in the InputStream it is read and if possible the charset is automatically determined from the BOM.
        Parameters:
        aIS - The input stream to use. May not be null.
        Returns:
        Never null. Always use the input stream contained in the returned object and never the one passed in as a parameter, because the returned IS is a push-back InputStream that has a couple of bytes already buffered!