public class QuotedPrintableCodec extends Object implements BinaryEncoder, BinaryDecoder, StringEncoder, StringDecoder
The Quoted-Printable encoding is intended to represent data that largely consists of octets that correspond to printable characters in the ASCII character set. It encodes the data in such a way that the resulting octets are unlikely to be modified by mail transport. If the data being encoded are mostly ASCII text, the encoded form of the data remains largely recognizable by humans. A body which is entirely ASCII may also be encoded in Quoted-Printable to ensure the integrity of the data should the message pass through a character- translating, and/or line-wrapping gateway.
Note:
Depending on the selected strict
parameter, this class will implement a different set of rules of the
quoted-printable spec:
strict=false
: only rules #1 and #2 are implemented
strict=true
: all rules #1 through #5 are implemented
This class is immutable and thread-safe.
Constructor and Description |
---|
QuotedPrintableCodec()
Default constructor, assumes default Charset of
Charsets.UTF_8 |
QuotedPrintableCodec(boolean strict)
Constructor which allows for the selection of the strict mode.
|
QuotedPrintableCodec(java.nio.charset.Charset charset)
Constructor which allows for the selection of a default Charset.
|
QuotedPrintableCodec(java.nio.charset.Charset charset,
boolean strict)
Constructor which allows for the selection of a default Charset and strict mode.
|
QuotedPrintableCodec(String charsetName)
Constructor which allows for the selection of a default Charset.
|
Modifier and Type | Method and Description |
---|---|
byte[] |
decode(byte[] bytes)
Decodes an array of quoted-printable characters into an array of original bytes.
|
Object |
decode(Object obj)
Decodes a quoted-printable object into its original form.
|
String |
decode(String sourceStr)
Decodes a quoted-printable string into its original form using the default string Charset.
|
String |
decode(String sourceStr,
java.nio.charset.Charset sourceCharset)
Decodes a quoted-printable string into its original form using the specified string Charset.
|
String |
decode(String sourceStr,
String sourceCharset)
Decodes a quoted-printable string into its original form using the specified string Charset.
|
static byte[] |
decodeQuotedPrintable(byte[] bytes)
Decodes an array quoted-printable characters into an array of original bytes.
|
byte[] |
encode(byte[] bytes)
Encodes an array of bytes into an array of quoted-printable 7-bit characters.
|
Object |
encode(Object obj)
Encodes an object into its quoted-printable safe form.
|
String |
encode(String sourceStr)
Encodes a string into its quoted-printable form using the default string Charset.
|
String |
encode(String sourceStr,
java.nio.charset.Charset sourceCharset)
Encodes a string into its quoted-printable form using the specified Charset.
|
String |
encode(String sourceStr,
String sourceCharset)
Encodes a string into its quoted-printable form using the specified Charset.
|
static byte[] |
encodeQuotedPrintable(BitSet printable,
byte[] bytes)
Encodes an array of bytes into an array of quoted-printable 7-bit characters.
|
static byte[] |
encodeQuotedPrintable(BitSet printable,
byte[] bytes,
boolean strict)
Encodes an array of bytes into an array of quoted-printable 7-bit characters.
|
java.nio.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.
|
public QuotedPrintableCodec()
Charsets.UTF_8
public QuotedPrintableCodec(boolean strict)
strict
- if true
, soft line breaks will be usedpublic QuotedPrintableCodec(java.nio.charset.Charset charset)
charset
- the default string Charset to use.public QuotedPrintableCodec(java.nio.charset.Charset charset, boolean strict)
charset
- the default string Charset to use.strict
- if true
, soft line breaks will be usedpublic QuotedPrintableCodec(String charsetName) throws java.nio.charset.IllegalCharsetNameException, IllegalArgumentException, java.nio.charset.UnsupportedCharsetException
charsetName
- the default string Charset to use.java.nio.charset.UnsupportedCharsetException
- If no support for the named Charset is available
in this instance of the Java virtual machineIllegalArgumentException
- If the given charsetName is nulljava.nio.charset.IllegalCharsetNameException
- If the given Charset name is illegalpublic byte[] decode(byte[] bytes) throws DecoderException
This function fully implements the quoted-printable encoding specification (rule #1 through rule #5) as defined in RFC 1521.
decode
in interface BinaryDecoder
bytes
- array of quoted-printable charactersDecoderException
- Thrown if quoted-printable decoding is unsuccessfulpublic Object decode(Object obj) throws DecoderException
decode
in interface Decoder
obj
- quoted-printable object to convert into its original formDecoderException
- Thrown if the argument is not a String
or byte[]
. Thrown if a failure
condition is encountered during the decode process.public String decode(String sourceStr) throws DecoderException
decode
in interface StringDecoder
sourceStr
- quoted-printable string to convert into its original formDecoderException
- Thrown if quoted-printable decoding is unsuccessful. Thrown if Charset is not supported.getCharset()
public String decode(String sourceStr, java.nio.charset.Charset sourceCharset) throws DecoderException
sourceStr
- quoted-printable string to convert into its original formsourceCharset
- the original string CharsetDecoderException
- Thrown if quoted-printable decoding is unsuccessfulpublic String decode(String sourceStr, String sourceCharset) throws DecoderException, UnsupportedEncodingException
sourceStr
- quoted-printable string to convert into its original formsourceCharset
- the original string CharsetDecoderException
- Thrown if quoted-printable decoding is unsuccessfulUnsupportedEncodingException
- Thrown if Charset is not supportedpublic static final byte[] decodeQuotedPrintable(byte[] bytes) throws DecoderException
This function fully implements the quoted-printable encoding specification (rule #1 through rule #5) as defined in RFC 1521.
bytes
- array of quoted-printable charactersDecoderException
- Thrown if quoted-printable decoding is unsuccessfulpublic byte[] encode(byte[] bytes)
Depending on the selection of the strict
parameter, this function either implements the full ruleset
or only a subset of quoted-printable encoding specification (rule #1 and rule #2) as defined in
RFC 1521 and is suitable for encoding binary data and unformatted text.
encode
in interface BinaryEncoder
bytes
- array of bytes to be encodedpublic Object encode(Object obj) throws EncoderException
encode
in interface Encoder
obj
- string to convert to a quoted-printable formEncoderException
- Thrown if quoted-printable encoding is not applicable to objects of this type or if encoding is
unsuccessfulpublic String encode(String sourceStr) throws EncoderException
Depending on the selection of the strict
parameter, this function either implements the full ruleset
or only a subset of quoted-printable encoding specification (rule #1 and rule #2) as defined in
RFC 1521 and is suitable for encoding binary data and unformatted text.
encode
in interface StringEncoder
sourceStr
- string to convert to quoted-printable formEncoderException
- Thrown if quoted-printable encoding is unsuccessfulgetCharset()
public String encode(String sourceStr, java.nio.charset.Charset sourceCharset)
Depending on the selection of the strict
parameter, this function either implements the full ruleset
or only a subset of quoted-printable encoding specification (rule #1 and rule #2) as defined in
RFC 1521 and is suitable for encoding binary data and unformatted text.
sourceStr
- string to convert to quoted-printable formsourceCharset
- the Charset for sourceStrpublic String encode(String sourceStr, String sourceCharset) throws UnsupportedEncodingException
Depending on the selection of the strict
parameter, this function either implements the full ruleset
or only a subset of quoted-printable encoding specification (rule #1 and rule #2) as defined in
RFC 1521 and is suitable for encoding binary data and unformatted text.
sourceStr
- string to convert to quoted-printable formsourceCharset
- the Charset for sourceStrUnsupportedEncodingException
- Thrown if the Charset is not supportedpublic static final byte[] encodeQuotedPrintable(BitSet printable, byte[] bytes)
This function implements a subset of quoted-printable encoding specification (rule #1 and rule #2) as defined in RFC 1521 and is suitable for encoding binary data and unformatted text.
printable
- bitset of characters deemed quoted-printablebytes
- array of bytes to be encodedpublic static final byte[] encodeQuotedPrintable(BitSet printable, byte[] bytes, boolean strict)
Depending on the selection of the strict
parameter, this function either implements the full ruleset
or only a subset of quoted-printable encoding specification (rule #1 and rule #2) as defined in
RFC 1521 and is suitable for encoding binary data and unformatted text.
printable
- bitset of characters deemed quoted-printablebytes
- array of bytes to be encodedstrict
- if true
the full ruleset is used, otherwise only rule #1 and rule #2public java.nio.charset.Charset getCharset()
public String getDefaultCharset()