QCodec (Encode/Decode Utilities (Version 1.10))
Date: 2016-03-08

org.apache.commons.codec.net

## Class QCodec

- java.lang.Object
- - org.apache.commons.codec.net.RFC1522Codec
  - - org.apache.commons.codec.net.QCodec

- All Implemented Interfaces:
    Decoder, Encoder, StringDecoder, StringEncoder

      public class QCodec
      extends RFC1522Codec
      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.

  This class is conditionally thread-safe. The instance field `encodeBlanks` is mutable `setEncodeBlanks(boolean)` but is not volatile, and accesses are not synchronised. If an instance of the class is shared between threads, the caller needs to ensure that suitable synchronisation is used to ensure safe publication of the value between threads, and must not invoke `setEncodeBlanks(boolean)` after initial setup.

  Since:
    1.3
  Version:
    $Id: QCodec.java 1619948 2014-08-22 22:53:55Z ggregory $
  See Also:
    MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static byte` | `BLANK`
    `private Charset` | `charset` The default charset used for string decoding and encoding.
    `private boolean` | `encodeBlanks`
    `private static BitSet` | `PRINTABLE_CHARS` BitSet of printable characters as defined in RFC 1522.
    `private static byte` | `UNDERSCORE`

    - ### Fields inherited from class org.apache.commons.codec.net.RFC1522Codec

      `POSTFIX, PREFIX, SEP`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `QCodec()` Default constructor.
    `QCodec(Charset charset)` Constructor which allows for the selection of a default charset.
    `QCodec(String charsetName)` Constructor which allows for the selection of a default charset.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `decode(Object obj)` Decodes a quoted-printable object into its original form.
    `String` | `decode(String str)` Decodes a quoted-printable 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.
    `Object` | `encode(Object obj)` Encodes an object into its quoted-printable form using the default charset.
    `String` | `encode(String str)` Encodes a string into its quoted-printable form using the default charset.
    `String` | `encode(String str, Charset charset)` Encodes a string into its quoted-printable form using the specified charset.
    `String` | `encode(String str, String charset)` Encodes a string into its quoted-printable form using the specified 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.
    `protected String` | `getEncoding()` Returns the codec name (referred to as encoding in the RFC 1522).
    `boolean` | `isEncodeBlanks()` Tests if optional transformation of SPACE characters is to be used
    `void` | `setEncodeBlanks(boolean b)` Defines whether optional transformation of SPACE characters is to be used

    - ### Methods inherited from class org.apache.commons.codec.net.RFC1522Codec

      `decodeText, encodeText, encodeText`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### charset

          private final Charset charset

      The default charset used for string decoding and encoding.

    - #### PRINTABLE_CHARS

          private static final BitSet PRINTABLE_CHARS

      BitSet of printable characters as defined in RFC 1522.

    - #### BLANK

          private static final byte BLANK

      See Also:
        Constant Field Values

    - #### UNDERSCORE

          private static final byte UNDERSCORE

      See Also:
        Constant Field Values

    - #### encodeBlanks

          private boolean encodeBlanks

  - ### Constructor Detail

    - #### QCodec

          public QCodec()

      Default constructor.

    - #### QCodec

          public QCodec(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:
        Standard charsets

    - #### QCodec

          public QCodec(String charsetName)

      Constructor which allows for the selection of a default charset.
      Parameters:
        `charsetName` - the charset to use.
      Throws:
        `UnsupportedCharsetException` - If the named charset is unavailable
      Since:
        1.7 throws UnsupportedCharsetException if the named charset is unavailable
      See Also:
        Standard charsets

  - ### Method Detail

    - #### 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)
                               throws DecoderException

      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
      Throws:
        `DecoderException` - A decoder exception is thrown if a Decoder encounters a failure condition during the decode process.

    - #### encode

          public String encode(String str,
                      Charset charset)
                        throws EncoderException

      Encodes a string into its quoted-printable form using the specified charset. Unsafe characters are escaped.
      Parameters:
        `str` - string to convert to quoted-printable form
        `charset` - the charset for str
      Returns:
        quoted-printable string
      Throws:
        `EncoderException` - thrown if a failure condition is encountered during the encoding process.
      Since:
        1.7

    - #### encode

          public String encode(String str,
                      String charset)
                        throws EncoderException

      Encodes a string into its quoted-printable form using the specified charset. Unsafe characters are escaped.
      Parameters:
        `str` - string to convert to quoted-printable form
        `charset` - the charset for str
      Returns:
        quoted-printable string
      Throws:
        `EncoderException` - thrown if a failure condition is encountered during the encoding process.

    - #### encode

          public String encode(String str)
                        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:
        `str` - 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 str)
                        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:
        `str` - 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 obj)
                        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:
        `obj` - 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 obj)
                        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:
        `obj` - quoted-printable 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

    - #### isEncodeBlanks

          public boolean isEncodeBlanks()

      Tests if optional transformation 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 transformation of SPACE characters is to be used
      Parameters:
        `b` - `true` if SPACE characters are to be transformed, `false` otherwise

commons-codec version 1.10 - Copyright © 2002-2016 - Apache Software Foundation