Class QCodec

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

public class QCodec
extends Object
implements StringEncoder, StringDecoder

Similar to the Quoted-Printable content-transfer-encoding defined in RFC 1521 and designed to allow text containing mostly ASCII characters to be decipherable on an ASCII terminal without decoding.

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.

Since:
1.3
Version:
$Id: QCodec.java,v 1.6 2004/05/24 00:24:32 ggregory Exp $
Author:
Apache Software Foundation
See Also:
MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text
  • Constructor Summary

    Constructors
    Constructor Description
    QCodec()
    Default constructor.
    QCodec​(String charset)
    Constructor which allows for the selection of a default charset
  • Method Summary

    Modifier and Type Method Description
    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.
    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 pObject)
    Encodes an object into its quoted-printable form using the default charset.
    String encode​(String pString)
    Encodes a string into its quoted-printable form using the default charset.
    String encode​(String pString, String charset)
    Encodes a string into its quoted-printable form using the specified charset.
    protected String encodeText​(String text, String charset)
    Applies an RFC 1522 compliant encoding scheme to the given string of text with the given charset.
    String getDefaultCharset()
    The default charset used for string decoding and encoding.
    protected String getEncoding()
    Returns the codec name (referred to as encoding in the RFC 1522)
    boolean isEncodeBlanks()
    Tests if optional tranformation of SPACE characters is to be used
    void setEncodeBlanks​(boolean b)
    Defines whether optional tranformation of SPACE characters is to be used

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • QCodec

      public QCodec()
      Default constructor.
    • QCodec

      public QCodec​(String charset)
      Constructor which allows for the selection of a default charset
      Parameters:
      charset - the default string charset to use.
      See Also:
      JRE character encoding names
  • Method Details

    • 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) throws EncoderException
      Encodes an array of bytes using the defined encoding scheme
      Parameters:
      bytes - Data to be encoded
      Returns:
      A byte array containing the encoded data
      Throws:
      EncoderException - thrown if the Encoder encounters a failure condition during the encoding process.
    • doDecoding

      protected byte[] doDecoding​(byte[] bytes) throws DecoderException
      Decodes an array of bytes using the defined encoding scheme
      Parameters:
      bytes - Data to be decoded
      Returns:
      a byte array that contains decoded data
      Throws:
      DecoderException - A decoder exception is thrown if a Decoder encounters a failure condition during the decode process.
    • encode

      public String encode​(String pString, String charset) throws EncoderException
      Encodes a string into its quoted-printable form using the specified charset. Unsafe characters are escaped.
      Parameters:
      pString - string to convert to quoted-printable form
      charset - the charset for pString
      Returns:
      quoted-printable string
      Throws:
      EncoderException - thrown if a failure condition is encountered during the encoding process.
    • encode

      public String encode​(String pString) throws EncoderException
      Encodes a string into its quoted-printable form using the default charset. Unsafe characters are escaped.
      Specified by:
      encode in interface StringEncoder
      Parameters:
      pString - string to convert to quoted-printable form
      Returns:
      quoted-printable string
      Throws:
      EncoderException - thrown if a failure condition is encountered during the encoding process.
    • decode

      public String decode​(String pString) throws DecoderException
      Decodes a quoted-printable string into its original form. 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 - A decoder exception is thrown if a failure condition is encountered during the decode process.
    • encode

      public Object encode​(Object pObject) throws EncoderException
      Encodes an object into its quoted-printable form using the default charset. Unsafe characters are escaped.
      Specified by:
      encode in interface Encoder
      Parameters:
      pObject - object to convert to quoted-printable form
      Returns:
      quoted-printable object
      Throws:
      EncoderException - thrown if a failure condition is encountered during the encoding process.
    • 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 - A decoder exception is thrown if a failure condition is encountered during the decode process.
    • getDefaultCharset

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

      public boolean isEncodeBlanks()
      Tests if optional tranformation of SPACE characters is to be used
      Returns:
      true if SPACE characters are to be transformed, false otherwise
    • setEncodeBlanks

      public void setEncodeBlanks​(boolean b)
      Defines whether optional tranformation of SPACE characters is to be used
      Parameters:
      b - true if SPACE characters are to be transformed, false otherwise
    • encodeText

      protected String encodeText​(String text, String charset) 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 enconding.
      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 conidition during the Encoding process.
      UnsupportedEncodingException - thrown if charset is not supported
      See Also:
      JRE character encoding names
    • 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 deconding.
      Parameters:
      text - a string to decode
      Throws:
      DecoderException - thrown if there is an error conidition during the Decoding process.
      UnsupportedEncodingException - thrown if charset specified in the "encoded-word" header is not supported