org.apache.commons.codec.net

Class QuotedPrintableCodec

Implemented Interfaces:
BinaryDecoder, BinaryEncoder, Decoder, Encoder, StringDecoder, StringEncoder

public class QuotedPrintableCodec
extends Object
implements BinaryEncoder, BinaryDecoder, StringEncoder, StringDecoder

Codec for the Quoted-Printable section of RFC 1521 .

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:

Rules #3, #4, and #5 of the quoted-printable spec are not implemented yet because the complete quoted-printable spec does not lend itself well into the byte[] oriented codec framework. Complete the codec once the steamable codec framework is ready. The motivation behind providing the codec in a partial form is that it can already come in handy for those applications that do not require quoted-printable line formatting (rules #3, #4, #5), for instance Q codec.

Version:
$Id: QuotedPrintableCodec.java,v 1.7 2004/04/09 22:21:07 ggregory Exp $

Author:
Apache Software Foundation

Since:
1.3

See Also:
RFC 1521 MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies

Field Summary

private static byte
ESCAPE_CHAR
private static BitSet
PRINTABLE_CHARS
BitSet of printable characters as defined in RFC 1521.
private static byte
SPACE
private static byte
TAB
private String
charset
The default charset used for string decoding and encoding.

Constructor Summary

QuotedPrintableCodec()
Default constructor.
QuotedPrintableCodec(String charset)
Constructor which allows for the selection of a default charset

Method Summary

Object
decode(Object pObject)
Decodes a quoted-printable object into its original form.
String
decode(String pString)
Decodes a quoted-printable string into its original form using the default string charset.
String
decode(String pString, String charset)
Decodes a quoted-printable string into its original form using the specified string charset.
byte[]
decode(byte[] bytes)
Decodes an array of quoted-printable characters into an array of original bytes.
static byte[]
decodeQuotedPrintable(byte[] bytes)
Decodes an array quoted-printable characters into an array of original bytes.
Object
encode(Object pObject)
Encodes an object into its quoted-printable safe form.
String
encode(String pString)
Encodes a string into its quoted-printable form using the default string charset.
String
encode(String pString, String charset)
Encodes a string into its quoted-printable form using the specified charset.
byte[]
encode(byte[] bytes)
Encodes an array of bytes into an array of quoted-printable 7-bit characters.
static byte[]
encodeQuotedPrintable(BitSet printable, byte[] bytes)
Encodes an array of bytes into an array of quoted-printable 7-bit characters.
private static void
encodeQuotedPrintable(int b, ByteArrayOutputStream buffer)
Encodes byte into its quoted-printable representation.
String
getDefaultCharset()
Returns the default charset used for string decoding and encoding.

Field Details

ESCAPE_CHAR

private static byte ESCAPE_CHAR


PRINTABLE_CHARS

private static final BitSet PRINTABLE_CHARS
BitSet of printable characters as defined in RFC 1521.


SPACE

private static byte SPACE


TAB

private static byte TAB


charset

private String charset
The default charset used for string decoding and encoding.

Constructor Details

QuotedPrintableCodec

public QuotedPrintableCodec()
Default constructor.


QuotedPrintableCodec

public QuotedPrintableCodec(String charset)
Constructor which allows for the selection of a default charset

Parameters:
charset - the default string charset to use.

Method Details

decode

public Object decode(Object pObject)
            throws DecoderException
Decodes a quoted-printable object into its original form. Escaped characters are converted back to their original representation.
Specified by:
decode in interface Decoder

Parameters:
pObject - quoted-printable object to convert into its original form

Returns:
original object

Throws:
DecoderException - Thrown if quoted-printable decoding is not applicable to objects of this type if decoding is unsuccessful


decode

public String decode(String pString)
            throws DecoderException
Decodes a quoted-printable string into its original form using the default string charset. Escaped characters are converted back to their original representation.
Specified by:
decode in interface StringDecoder

Parameters:
pString - quoted-printable string to convert into its original form

Returns:
original string

Throws:
DecoderException - Thrown if quoted-printable decoding is unsuccessful

See Also:
getDefaultCharset()


decode

public String decode(String pString,
                     String charset)
            throws DecoderException,
                   UnsupportedEncodingException
Decodes a quoted-printable string into its original form using the specified string charset. Escaped characters are converted back to their original representation.

Parameters:
pString - quoted-printable string to convert into its original form
charset - the original string charset

Returns:
original string

Throws:
DecoderException - Thrown if quoted-printable decoding is unsuccessful


decode

public byte[] decode(byte[] bytes)
            throws DecoderException
Decodes an array of quoted-printable characters into an array of original bytes. Escaped characters are converted back to their original representation.

This function implements a subset of quoted-printable encoding specification (rule #1 and rule #2) as defined in RFC 1521.

Specified by:
decode in interface BinaryDecoder

Parameters:
bytes - array of quoted-printable characters

Returns:
array of original bytes

Throws:
DecoderException - Thrown if quoted-printable decoding is unsuccessful


decodeQuotedPrintable

public static final byte[] decodeQuotedPrintable(byte[] bytes)
            throws DecoderException
Decodes an array quoted-printable characters into an array of original bytes. Escaped characters are converted back to their original representation.

This function implements a subset of quoted-printable encoding specification (rule #1 and rule #2) as defined in RFC 1521.

Parameters:
bytes - array of quoted-printable characters

Returns:
array of original bytes

Throws:
DecoderException - Thrown if quoted-printable decoding is unsuccessful


encode

public Object encode(Object pObject)
            throws EncoderException
Encodes an object into its quoted-printable safe form. Unsafe characters are escaped.
Specified by:
encode in interface Encoder

Parameters:
pObject - string to convert to a quoted-printable form

Returns:
quoted-printable object

Throws:
EncoderException - Thrown if quoted-printable encoding is not applicable to objects of this type or if encoding is unsuccessful


encode

public String encode(String pString)
            throws EncoderException
Encodes a string into its quoted-printable form using the default string charset. Unsafe characters are escaped.

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.

Specified by:
encode in interface StringEncoder

Parameters:
pString - string to convert to quoted-printable form

Returns:
quoted-printable string

Throws:
EncoderException - Thrown if quoted-printable encoding is unsuccessful

See Also:
getDefaultCharset()


encode

public String encode(String pString,
                     String charset)
            throws UnsupportedEncodingException
Encodes a string into its quoted-printable form using the specified charset. Unsafe characters are escaped.

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.

Parameters:
pString - string to convert to quoted-printable form
charset - the charset for pString

Returns:
quoted-printable string


encode

public byte[] encode(byte[] bytes)
Encodes an array of bytes into an array of quoted-printable 7-bit characters. Unsafe characters are escaped.

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.

Specified by:
encode in interface BinaryEncoder

Parameters:
bytes - array of bytes to be encoded

Returns:
array of bytes containing quoted-printable data


encodeQuotedPrintable

public static final byte[] encodeQuotedPrintable(BitSet printable,
                                                 byte[] bytes)
Encodes an array of bytes into an array of quoted-printable 7-bit characters. Unsafe characters are escaped.

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.

Parameters:
printable - bitset of characters deemed quoted-printable
bytes - array of bytes to be encoded

Returns:
array of bytes containing quoted-printable data


encodeQuotedPrintable

private static final void encodeQuotedPrintable(int b,
                                                ByteArrayOutputStream buffer)
Encodes byte into its quoted-printable representation.

Parameters:
b - byte to encode
buffer - the buffer to write to


getDefaultCharset

public String getDefaultCharset()
Returns the default charset used for string decoding and encoding.

Returns:
the default string charset.


commons-codec version 1.3 - Copyright © 2002-2004 - Apache Software Foundation