org.apache.tomcat.util.http.fileupload.util.mime

## Class RFC2231Utility

- java.lang.Object
- - org.apache.tomcat.util.http.fileupload.util.mime.RFC2231Utility

-     public final class RFC2231Utility
      extends 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

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RFC2231Utility()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static String` | `decodeText(String encodedText)` Decode a string of text obtained from a HTTP header as per RFC 2231 Eg 1.
    `static boolean` | `hasEncodedValue(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 String` | `stripDelimiter(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`

- - ### Constructor Detail

    - #### RFC2231Utility

          public RFC2231Utility()

  - ### Method Detail

    - #### hasEncodedValue

          public static boolean hasEncodedValue(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 String stripDelimiter(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 String decodeText(String encodedText)
                                   throws 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:
        `UnsupportedEncodingException` - The requested character set wasn't found.

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.