Package org.apache.commons.codec.net
Class PercentCodec
java.lang.Object
org.apache.commons.codec.net.PercentCodec
- All Implemented Interfaces:
- BinaryDecoder,- BinaryEncoder,- Decoder,- Encoder
Implements the Percent-Encoding scheme, as described in HTTP 1.1 specification. For extensibility, an array of
 special US-ASCII characters can be specified in order to perform proper URI encoding for the different parts
 of the URI.
 
This class is immutable. It is also thread-safe besides using BitSet which is not thread-safe, but its public interface only call the access
- Since:
- 1.12
- See Also:
- 
Constructor SummaryConstructorsConstructorDescriptionConstructs a Percent coded that will encode all the non US-ASCII characters using the Percent-Encoding while it will not encode all the US-ASCII characters, except for character '%' that is used as escape character for Percent-Encoding.PercentCodec(byte[] alwaysEncodeChars, boolean plusForSpace) Constructs a Percent codec by specifying the characters that belong to US-ASCII that should always be encoded.
- 
Method SummaryModifier and TypeMethodDescriptionbyte[]decode(byte[] bytes) Decodes bytes encoded with Percent-Encoding based on RFC 3986.Decodes a byte[] Object, whose bytes are encoded with Percent-Encoding.byte[]encode(byte[] bytes) Percent-Encoding based on RFC 3986.Encodes an object into using the Percent-Encoding.
- 
Constructor Details- 
PercentCodecpublic PercentCodec()Constructs a Percent coded that will encode all the non US-ASCII characters using the Percent-Encoding while it will not encode all the US-ASCII characters, except for character '%' that is used as escape character for Percent-Encoding.
- 
PercentCodecConstructs a Percent codec by specifying the characters that belong to US-ASCII that should always be encoded. The rest US-ASCII characters will not be encoded, except for character '%' that is used as escape character for Percent-Encoding.- Parameters:
- alwaysEncodeChars- the unsafe characters that should always be encoded
- plusForSpace- the flag defining if the space character should be encoded as '+'
 
 
- 
- 
Method Details- 
decodeDecodes bytes encoded with Percent-Encoding based on RFC 3986. The reverse process is performed in order to decode the encoded characters to Unicode.- Specified by:
- decodein interface- BinaryDecoder
- Parameters:
- bytes- A byte array which has been encoded with the appropriate encoder
- Returns:
- a byte array that contains decoded content
- Throws:
- DecoderException- A decoder exception is thrown if a Decoder encounters a failure condition during the decode process.
 
- 
decodeDecodes a byte[] Object, whose bytes are encoded with Percent-Encoding.- Specified by:
- decodein interface- Decoder
- Parameters:
- obj- the object to decode
- Returns:
- the decoding result byte[] as Object
- Throws:
- DecoderException- if the object is not a byte array
 
- 
encodePercent-Encoding based on RFC 3986. The non US-ASCII characters are encoded, as well as the US-ASCII characters that are configured to be always encoded.- Specified by:
- encodein interface- BinaryEncoder
- 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.
 
- 
encodeEncodes an object into using the Percent-Encoding. Only byte[] objects are accepted.- Specified by:
- encodein interface- Encoder
- Parameters:
- obj- the object to encode
- Returns:
- the encoding result byte[] as Object
- Throws:
- EncoderException- if the object is not a byte array
 
 
-