Package org.apache.commons.codec.net
Class PercentCodec
- java.lang.Object
-
- org.apache.commons.codec.net.PercentCodec
-
- All Implemented Interfaces:
BinaryDecoder,BinaryEncoder,Decoder,Encoder
public class PercentCodec extends java.lang.Object implements BinaryEncoder, BinaryDecoder
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:
- Percent-Encoding
-
-
Constructor Summary
Constructors Constructor Description 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.PercentCodec(byte[] alwaysEncodeChars, boolean plusForSpace)Constructs a Percent codec by specifying the characters that belong to US-ASCII that should always be encoded.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]decode(byte[] bytes)Decodes bytes encoded with Percent-Encoding based on RFC 3986.java.lang.Objectdecode(java.lang.Object obj)Decodes a byte[] Object, whose bytes are encoded with Percent-Encoding.byte[]encode(byte[] bytes)Percent-Encoding based on RFC 3986.java.lang.Objectencode(java.lang.Object obj)Encodes an object into using the Percent-Encoding.
-
-
-
Constructor Detail
-
PercentCodec
public 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.
-
PercentCodec
public PercentCodec(byte[] alwaysEncodeChars, boolean plusForSpace)Constructs 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 encodedplusForSpace- the flag defining if the space character should be encoded as '+'
-
-
Method Detail
-
decode
public byte[] decode(byte[] bytes) throws DecoderExceptionDecodes 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 interfaceBinaryDecoder- 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.
-
decode
public java.lang.Object decode(java.lang.Object obj) throws DecoderExceptionDecodes a byte[] Object, whose bytes are encoded with Percent-Encoding.- Specified by:
decodein interfaceDecoder- Parameters:
obj- the object to decode- Returns:
- the decoding result byte[] as Object
- Throws:
DecoderException- if the object is not a byte array
-
encode
public byte[] encode(byte[] bytes) throws EncoderExceptionPercent-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 interfaceBinaryEncoder- 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.
-
encode
public java.lang.Object encode(java.lang.Object obj) throws EncoderExceptionEncodes an object into using the Percent-Encoding. Only byte[] objects are accepted.- Specified by:
encodein interfaceEncoder- Parameters:
obj- the object to encode- Returns:
- the encoding result byte[] as Object
- Throws:
EncoderException- if the object is not a byte array
-
-