org.apache.commons.codec.net

## Class BCodec

- java.lang.Object
- - org.apache.commons.codec.net.BCodec

- All Implemented Interfaces:
    Decoder, Encoder, StringDecoder, StringEncoder

      public class BCodec
      extends Object
      implements StringEncoder, StringDecoder

  Identical to the Base64 encoding defined by RFC 1521 and allows a character set to be specified.

  RFC 1522 describes techniques to allow the encoding of non-ASCII text in various portions of a RFC 822 [2] message header, in a manner which is unlikely to confuse existing message handling software.

  This class is immutable and thread-safe.

  Since:
    1.3
  See Also:
    MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static String` | `POSTFIX` Prefix.
    `protected static String` | `PREFIX` Postfix.
    `protected static char` | `SEP` Separator.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BCodec()` Default constructor.
    `BCodec(Charset charset)` Constructor which allows for the selection of a default Charset
    `BCodec(String charsetName)` Constructor which allows for the selection of a default Charset

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `decode(Object value)` Decodes a Base64 object into its original form.
    `String` | `decode(String value)` Decodes a Base64 string into its original form.
    `protected String` | `decodeText(String text)` Applies an RFC 1522 compliant decoding scheme to the given string of text.
    `protected byte[]` | `doDecoding(byte[] bytes)` Decodes an array of bytes using the defined encoding scheme.
    `protected byte[]` | `doEncoding(byte[] bytes)` Encodes an array of bytes using the defined encoding scheme.
    `Object` | `encode(Object value)` Encodes an object into its Base64 form using the default Charset.
    `String` | `encode(String strSource)` Encodes a string into its Base64 form using the default Charset.
    `String` | `encode(String strSource, Charset sourceCharset)` Encodes a string into its Base64 form using the specified Charset.
    `String` | `encode(String strSource, String sourceCharset)` Encodes a string into its Base64 form using the specified Charset.
    `protected String` | `encodeText(String text, Charset charset)` Applies an RFC 1522 compliant encoding scheme to the given string of text with the given charset.
    `protected String` | `encodeText(String text, String charsetName)` Applies an RFC 1522 compliant encoding scheme to the given string of text with the given charset.
    `Charset` | `getCharset()` Gets the default Charset name used for string decoding and encoding.
    `String` | `getDefaultCharset()` Gets the default Charset name used for string decoding and encoding.
    `protected String` | `getEncoding()` Returns the codec name (referred to as encoding in the RFC 1522).

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### SEP

          protected static final char SEP

      Separator.
      See Also:
        Constant Field Values

    - #### POSTFIX

          protected static final String POSTFIX

      Prefix.
      See Also:
        Constant Field Values

    - #### PREFIX

          protected static final String PREFIX

      Postfix.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### BCodec

          public BCodec()

      Default constructor.

    - #### BCodec

          public BCodec(Charset charset)

      Constructor which allows for the selection of a default Charset
      Parameters:
        `charset` - the default string Charset to use.
      Since:
        1.7
      See Also:
        Standard charsets

    - #### BCodec

          public BCodec(String charsetName)

      Constructor which allows for the selection of a default Charset
      Parameters:
        `charsetName` - the default Charset to use.
      Throws:
        `UnsupportedCharsetException` - If the named Charset is unavailable
      Since:
        1.7 throws UnsupportedCharsetException if the named Charset is unavailable
      See Also:
        Standard charsets

  - ### Method Detail

    - #### getEncoding

          protected String getEncoding()

      Returns the codec name (referred to as encoding in the RFC 1522).
      Returns:
        name of the codec

    - #### doEncoding

          protected byte[] doEncoding(byte[] bytes)

      Encodes an array of bytes using the defined encoding scheme.
      Parameters:
        `bytes` - Data to be encoded
      Returns:
        A byte array containing the encoded data

    - #### doDecoding

          protected byte[] doDecoding(byte[] bytes)

      Decodes an array of bytes using the defined encoding scheme.
      Parameters:
        `bytes` - Data to be decoded
      Returns:
        a byte array that contains decoded data

    - #### encode

          public String encode(String strSource,
                               Charset sourceCharset)
                        throws EncoderException

      Encodes a string into its Base64 form using the specified Charset. Unsafe characters are escaped.
      Parameters:
        `strSource` - string to convert to Base64 form
        `sourceCharset` - the Charset for `value`
      Returns:
        Base64 string
      Throws:
        `EncoderException` - thrown if a failure condition is encountered during the encoding process.
      Since:
        1.7

    - #### encode

          public String encode(String strSource,
                               String sourceCharset)
                        throws EncoderException

      Encodes a string into its Base64 form using the specified Charset. Unsafe characters are escaped.
      Parameters:
        `strSource` - string to convert to Base64 form
        `sourceCharset` - the Charset for `value`
      Returns:
        Base64 string
      Throws:
        `EncoderException` - thrown if a failure condition is encountered during the encoding process.

    - #### encode

          public String encode(String strSource)
                        throws EncoderException

      Encodes a string into its Base64 form using the default Charset. Unsafe characters are escaped.
      Specified by:
        `encode` in interface `StringEncoder`
      Parameters:
        `strSource` - string to convert to Base64 form
      Returns:
        Base64 string
      Throws:
        `EncoderException` - thrown if a failure condition is encountered during the encoding process.

    - #### decode

          public String decode(String value)
                        throws DecoderException

      Decodes a Base64 string into its original form. Escaped characters are converted back to their original representation.
      Specified by:
        `decode` in interface `StringDecoder`
      Parameters:
        `value` - Base64 string to convert into its original form
      Returns:
        original string
      Throws:
        `DecoderException` - A decoder exception is thrown if a failure condition is encountered during the decode process.

    - #### encode

          public Object encode(Object value)
                        throws EncoderException

      Encodes an object into its Base64 form using the default Charset. Unsafe characters are escaped.
      Specified by:
        `encode` in interface `Encoder`
      Parameters:
        `value` - object to convert to Base64 form
      Returns:
        Base64 object
      Throws:
        `EncoderException` - thrown if a failure condition is encountered during the encoding process.

    - #### decode

          public Object decode(Object value)
                        throws DecoderException

      Decodes a Base64 object into its original form. Escaped characters are converted back to their original representation.
      Specified by:
        `decode` in interface `Decoder`
      Parameters:
        `value` - Base64 object to convert into its original form
      Returns:
        original object
      Throws:
        `DecoderException` - Thrown if the argument is not a `String`. Thrown if a failure condition is encountered during the decode process.

    - #### getCharset

          public Charset getCharset()

      Gets the default Charset name used for string decoding and encoding.
      Returns:
        the default Charset name
      Since:
        1.7

    - #### getDefaultCharset

          public String getDefaultCharset()

      Gets the default Charset name used for string decoding and encoding.
      Returns:
        the default Charset name

    - #### encodeText

          protected String encodeText(String text,
                                      Charset charset)
                               throws EncoderException

      Applies an RFC 1522 compliant encoding scheme to the given string of text with the given charset.

      This method constructs the "encoded-word" header common to all the RFC 1522 codecs and then invokes `doEncoding(byte [])` method of a concrete class to perform the specific encoding.

      Parameters:
        `text` - a string to encode
        `charset` - a charset to be used
      Returns:
        RFC 1522 compliant "encoded-word"
      Throws:
        `EncoderException` - thrown if there is an error condition during the Encoding process.
      See Also:
        Standard charsets

    - #### encodeText

          protected String encodeText(String text,
                                      String charsetName)
                               throws EncoderException,
                                      UnsupportedEncodingException

      Applies an RFC 1522 compliant encoding scheme to the given string of text with the given charset.

      This method constructs the "encoded-word" header common to all the RFC 1522 codecs and then invokes `doEncoding(byte [])` method of a concrete class to perform the specific encoding.

      Parameters:
        `text` - a string to encode
        `charsetName` - the charset to use
      Returns:
        RFC 1522 compliant "encoded-word"
      Throws:
        `EncoderException` - thrown if there is an error condition during the Encoding process.
        `UnsupportedEncodingException` - if charset is not available
      See Also:
        Standard charsets

    - #### decodeText

          protected String decodeText(String text)
                               throws DecoderException,
                                      UnsupportedEncodingException

      Applies an RFC 1522 compliant decoding scheme to the given string of text.

      This method processes the "encoded-word" header common to all the RFC 1522 codecs and then invokes `doEncoding(byte [])` method of a concrete class to perform the specific decoding.

      Parameters:
        `text` - a string to decode
      Returns:
        A new decoded String or `null` if the input is `null`.
      Throws:
        `DecoderException` - thrown if there is an error condition during the decoding process.
        `UnsupportedEncodingException` - thrown if charset specified in the "encoded-word" header is not supported

Copyright © 2002–2019 The Apache Software Foundation. All rights reserved.