Class RFC2231Utility


  • public final class RFC2231Utility
    extends java.lang.Object
    Utility class to decode/encode character set on HTTP Header fields based on RFC 2231. This implementation adheres to RFC 5987 in particular, which was defined for HTTP headers RFC 5987 builds on RFC 2231, but has lesser scope like mandatory charset definition and no parameter continuation

    See Also:
    RFC 2231, RFC 5987
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String decodeText​(java.lang.String encodedText)
      Decode a string of text obtained from a HTTP header as per RFC 2231 Eg 1. us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A will be decoded to This is ***fun*** Eg 2. iso-8859-1'en'%A3%20rate will be decoded to £ rate.
      static boolean hasEncodedValue​(java.lang.String paramName)
      Checks if Asterisk (*) at the end of parameter name to indicate, if it has charset and language information to decode the value.
      static java.lang.String stripDelimiter​(java.lang.String paramName)
      If paramName has Asterisk (*) at the end, it will be stripped off, else the passed value will be returned.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • hasEncodedValue

        public static boolean hasEncodedValue​(java.lang.String paramName)
        Checks if Asterisk (*) at the end of parameter name to indicate, if it has charset and language information to decode the value.
        Parameters:
        paramName - The parameter, which is being checked.
        Returns:
        true, if encoded as per RFC 2231, false otherwise
      • stripDelimiter

        public static java.lang.String stripDelimiter​(java.lang.String paramName)
        If paramName has Asterisk (*) at the end, it will be stripped off, else the passed value will be returned.
        Parameters:
        paramName - The parameter, which is being inspected.
        Returns:
        stripped paramName of Asterisk (*), if RFC2231 encoded
      • decodeText

        public static java.lang.String decodeText​(java.lang.String encodedText)
                                           throws java.io.UnsupportedEncodingException
        Decode a string of text obtained from a HTTP header as per RFC 2231 Eg 1. us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A will be decoded to This is ***fun*** Eg 2. iso-8859-1'en'%A3%20rate will be decoded to £ rate. Eg 3. UTF-8''%c2%a3%20and%20%e2%82%ac%20rates will be decoded to £ and € rates.
        Parameters:
        encodedText - - Text to be decoded has a format of <charset>'<language>'<encoded_value> and ASCII only
        Returns:
        Decoded text based on charset encoding
        Throws:
        java.io.UnsupportedEncodingException - The requested character set wasn't found.