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 for encoding blanks 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
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final Charset
    The default Charset used for string decoding and encoding.
    private boolean
     
    private static final BitSet
    BitSet of printable characters as defined in RFC 1522.
    private static final byte
     
    private static final byte
     

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

    POSTFIX, PREFIX, SEP
  • Constructor Summary

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

    Modifier and Type
    Method
    Description
    Decodes a quoted-printable object into its original form.
    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.
    Encodes an object into its quoted-printable form using the default Charset.
    encode(String sourceStr)
    Encodes a string into its quoted-printable form using the default Charset.
    encode(String sourceStr, String sourceCharset)
    Encodes a string into its quoted-printable form using the specified Charset.
    encode(String sourceStr, Charset sourceCharset)
    Encodes a string into its quoted-printable form using the specified Charset.
    Gets the default Charset name used for string decoding and encoding.
    Gets the default Charset name used for string decoding and encoding.
    protected String
    Returns the codec name (referred to as encoding in the RFC 1522).
    boolean
    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 Details

    • 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.
    • SPACE

      private static final byte SPACE
      See Also:
    • UNDERSCORE

      private static final byte UNDERSCORE
      See Also:
    • encodeBlanks

      private boolean encodeBlanks
  • Constructor Details

    • 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:
    • 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:
  • Method Details

    • 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 sourceStr, Charset sourceCharset) throws EncoderException
      Encodes a string into its quoted-printable form using the specified Charset. Unsafe characters are escaped.
      Parameters:
      sourceStr - string to convert to quoted-printable form
      sourceCharset - the Charset for sourceStr
      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 sourceStr, String sourceCharset) throws EncoderException
      Encodes a string into its quoted-printable form using the specified Charset. Unsafe characters are escaped.
      Parameters:
      sourceStr - string to convert to quoted-printable form
      sourceCharset - the Charset for sourceStr
      Returns:
      quoted-printable string
      Throws:
      EncoderException - thrown if a failure condition is encountered during the encoding process.
    • encode

      public String encode(String sourceStr) 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:
      sourceStr - 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