Class BCodec

java.lang.Object
org.apache.commons.codec.net.RFC1522Codec
org.apache.commons.codec.net.BCodec
All Implemented Interfaces:
Decoder, Encoder, StringDecoder, StringEncoder

public class BCodec extends RFC1522Codec 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:
  • Field Details

    • DECODING_POLICY_DEFAULT

      private static final CodecPolicy DECODING_POLICY_DEFAULT
      The default decoding policy.
    • charset

      private final Charset charset
      The default Charset used for string decoding and encoding.
    • decodingPolicy

      private final CodecPolicy decodingPolicy
      If true then decoding should throw an exception for impossible combinations of bits at the end of the byte input. The default is to decode as much of them as possible.
  • Constructor Details

    • 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:
    • BCodec

      public BCodec(Charset charset, CodecPolicy decodingPolicy)
      Constructor which allows for the selection of a default Charset.
      Parameters:
      charset - the default string Charset to use.
      decodingPolicy - The decoding policy.
      Since:
      1.15
      See Also:
    • 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:
  • Method Details

    • isStrictDecoding

      public boolean isStrictDecoding()
      Returns true if decoding behavior is strict. Decoding will raise a DecoderException if trailing bits are not part of a valid Base64 encoding.

      The default is false for lenient encoding. Decoding will compose trailing bits into 8-bit bytes and discard the remainder.

      Returns:
      true if using strict decoding
      Since:
      1.15
    • getEncoding

      protected String getEncoding()
      Description copied from class: RFC1522Codec
      Returns the codec name (referred to as encoding in the RFC 1522).
      Specified by:
      getEncoding in class RFC1522Codec
      Returns:
      name of the codec
    • doEncoding

      protected byte[] doEncoding(byte[] bytes)
      Description copied from class: RFC1522Codec
      Encodes an array of bytes using the defined encoding scheme.
      Specified by:
      doEncoding in class RFC1522Codec
      Parameters:
      bytes - Data to be encoded
      Returns:
      A byte array containing the encoded data
    • doDecoding

      protected byte[] doDecoding(byte[] bytes)
      Description copied from class: RFC1522Codec
      Decodes an array of bytes using the defined encoding scheme.
      Specified by:
      doDecoding in class RFC1522Codec
      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