Package org.apache.commons.codec.net
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.
-
-
Field Summary
Fields Modifier and Type Field Description private static CodecPolicyDECODING_POLICY_DEFAULTThe default decoding policy is lenient.private CodecPolicydecodingPolicyIf true then decoding should throw an exception for impossible combinations of bits at the end of the byte input.-
Fields inherited from class org.apache.commons.codec.net.RFC1522Codec
charset, POSTFIX, PREFIX, SEP
-
-
Constructor Summary
Constructors Constructor Description BCodec()Constructs a new instance.BCodec(java.lang.String charsetName)Constructs a new instance for the selection of a default Charset.BCodec(java.nio.charset.Charset charset)Constructs a new instance for the selection of a default Charset.BCodec(java.nio.charset.Charset charset, CodecPolicy decodingPolicy)Constructs a new instance for the selection of a default Charset.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectdecode(java.lang.Object value)Decodes a Base64 object into its original form.java.lang.Stringdecode(java.lang.String value)Decodes a Base64 string into its original form.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.java.lang.Objectencode(java.lang.Object value)Encodes an object into its Base64 form using the default Charset.java.lang.Stringencode(java.lang.String strSource)Encodes a string into its Base64 form using the default Charset.java.lang.Stringencode(java.lang.String strSource, java.lang.String sourceCharset)Encodes a string into its Base64 form using the specified Charset.java.lang.Stringencode(java.lang.String strSource, java.nio.charset.Charset sourceCharset)Encodes a string into its Base64 form using the specified Charset.protected java.lang.StringgetEncoding()Returns the codec name (referred to as encoding in the RFC 1522).booleanisStrictDecoding()Returns true if decoding behavior is strict.-
Methods inherited from class org.apache.commons.codec.net.RFC1522Codec
decodeText, encodeText, encodeText, getCharset, getDefaultCharset
-
-
-
-
Field Detail
-
DECODING_POLICY_DEFAULT
private static final CodecPolicy DECODING_POLICY_DEFAULT
The default decoding policy is lenient.
-
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 Detail
-
BCodec
public BCodec()
Constructs a new instance.
-
BCodec
public BCodec(java.nio.charset.Charset charset)
Constructs a new instance for the selection of a default Charset.- Parameters:
charset- the default string Charset to use.- Since:
- 1.7
- See Also:
Charset
-
BCodec
public BCodec(java.nio.charset.Charset charset, CodecPolicy decodingPolicy)Constructs a new instance for the selection of a default Charset.- Parameters:
charset- the default string Charset to use.decodingPolicy- The decoding policy.- Since:
- 1.15
- See Also:
Charset
-
BCodec
public BCodec(java.lang.String charsetName)
Constructs a new instance for the selection of a default Charset.- Parameters:
charsetName- the default Charset to use.- Throws:
java.nio.charset.UnsupportedCharsetException- If the named Charset is unavailable.- Since:
- 1.7 throws UnsupportedCharsetException if the named Charset is unavailable
- See Also:
Charset
-
-
Method Detail
-
decode
public java.lang.Object decode(java.lang.Object value) throws DecoderExceptionDecodes a Base64 object into its original form. Escaped characters are converted back to their original representation.- Specified by:
decodein interfaceDecoder- Parameters:
value- Base64 object to convert into its original form.- Returns:
- original object.
- Throws:
DecoderException- Thrown if the argument is not aString. Thrown if a failure condition is encountered during the decode process.
-
decode
public java.lang.String decode(java.lang.String value) throws DecoderExceptionDecodes a Base64 string into its original form. Escaped characters are converted back to their original representation.- Specified by:
decodein interfaceStringDecoder- 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.
-
doDecoding
protected byte[] doDecoding(byte[] bytes)
Description copied from class:RFC1522CodecDecodes an array of bytes using the defined encoding scheme.- Specified by:
doDecodingin classRFC1522Codec- Parameters:
bytes- Data to be decoded.- Returns:
- a byte array that contains decoded data.
-
doEncoding
protected byte[] doEncoding(byte[] bytes)
Description copied from class:RFC1522CodecEncodes an array of bytes using the defined encoding scheme.- Specified by:
doEncodingin classRFC1522Codec- Parameters:
bytes- Data to be encoded.- Returns:
- A byte array containing the encoded data.
-
encode
public java.lang.Object encode(java.lang.Object value) throws EncoderExceptionEncodes an object into its Base64 form using the default Charset. Unsafe characters are escaped.- Specified by:
encodein interfaceEncoder- Parameters:
value- object to convert to Base64 form.- Returns:
- Base64 object.
- Throws:
EncoderException- thrown if a failure condition is encountered during the encoding process.
-
encode
public java.lang.String encode(java.lang.String strSource) throws EncoderExceptionEncodes a string into its Base64 form using the default Charset. Unsafe characters are escaped.- Specified by:
encodein interfaceStringEncoder- Parameters:
strSource- string to convert to Base64 form.- Returns:
- Base64 string.
- Throws:
EncoderException- thrown if a failure condition is encountered during the encoding process.
-
encode
public java.lang.String encode(java.lang.String strSource, java.nio.charset.Charset sourceCharset) throws EncoderExceptionEncodes 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 forvalue.- Returns:
- Base64 string.
- Throws:
EncoderException- thrown if a failure condition is encountered during the encoding process.- Since:
- 1.7
-
encode
public java.lang.String encode(java.lang.String strSource, java.lang.String sourceCharset) throws EncoderExceptionEncodes 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 forvalue.- Returns:
- Base64 string.
- Throws:
EncoderException- thrown if a failure condition is encountered during the encoding process.
-
getEncoding
protected java.lang.String getEncoding()
Description copied from class:RFC1522CodecReturns the codec name (referred to as encoding in the RFC 1522).- Specified by:
getEncodingin classRFC1522Codec- Returns:
- name of the codec.
-
isStrictDecoding
public boolean isStrictDecoding()
Returns true if decoding behavior is strict. Decoding will raise aDecoderExceptionif 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
-
-