public class URLCodec extends Object implements BinaryEncoder, BinaryDecoder, StringEncoder, StringDecoder
This codec is meant to be a replacement for standard Java classes URLEncoder
and
URLDecoder
on older Java platforms, as these classes in Java versions below
1.4 rely on the platform's default charset encoding.
This class is thread-safe since 1.11
Modifier and Type | Field and Description |
---|---|
protected static byte |
ESCAPE_CHAR
Release 1.5 made this field final.
|
Constructor and Description |
---|
URLCodec()
Default constructor.
|
URLCodec(String charset)
Constructor which allows for the selection of a default charset.
|
Modifier and Type | Method and Description |
---|---|
byte[] |
decode(byte[] bytes)
Decodes an array of URL safe 7-bit characters into an array of original bytes.
|
Object |
decode(Object obj)
Decodes a URL safe object into its original form.
|
String |
decode(String str)
Decodes a URL safe string into its original form using the default string charset.
|
String |
decode(String str,
String charsetName)
Decodes a URL safe string into its original form using the specified encoding.
|
static byte[] |
decodeUrl(byte[] bytes)
Decodes an array of URL safe 7-bit characters into an array of original bytes.
|
byte[] |
encode(byte[] bytes)
Encodes an array of bytes into an array of URL safe 7-bit characters.
|
Object |
encode(Object obj)
Encodes an object into its URL safe form.
|
String |
encode(String str)
Encodes a string into its URL safe form using the default string charset.
|
String |
encode(String str,
String charsetName)
Encodes a string into its URL safe form using the specified string charset.
|
static byte[] |
encodeUrl(BitSet urlsafe,
byte[] bytes)
Encodes an array of bytes into an array of URL safe 7-bit characters.
|
String |
getDefaultCharset()
The default charset used for string decoding and encoding.
|
protected static final byte ESCAPE_CHAR
public URLCodec()
public URLCodec(String charset)
charset
- the default string charset to use.public byte[] decode(byte[] bytes) throws DecoderException
decode
in interface BinaryDecoder
bytes
- array of URL safe charactersDecoderException
- Thrown if URL decoding is unsuccessfulpublic Object decode(Object obj) throws DecoderException
decode
in interface Decoder
obj
- URL safe object to convert into its original formDecoderException
- Thrown if the argument is not a String
or byte[]
. Thrown if a failure
condition is encountered during the decode process.public String decode(String str) throws DecoderException
decode
in interface StringDecoder
str
- URL safe string to convert into its original formDecoderException
- Thrown if URL decoding is unsuccessfulgetDefaultCharset()
public String decode(String str, String charsetName) throws DecoderException, UnsupportedEncodingException
str
- URL safe string to convert into its original formcharsetName
- the original string charsetDecoderException
- Thrown if URL decoding is unsuccessfulUnsupportedEncodingException
- Thrown if charset is not supportedpublic static final byte[] decodeUrl(byte[] bytes) throws DecoderException
bytes
- array of URL safe charactersDecoderException
- Thrown if URL decoding is unsuccessfulpublic byte[] encode(byte[] bytes)
encode
in interface BinaryEncoder
bytes
- array of bytes to convert to URL safe characterspublic Object encode(Object obj) throws EncoderException
encode
in interface Encoder
obj
- string to convert to a URL safe formEncoderException
- Thrown if URL encoding is not applicable to objects of this type or if encoding is unsuccessfulpublic String encode(String str) throws EncoderException
encode
in interface StringEncoder
str
- string to convert to a URL safe formEncoderException
- Thrown if URL encoding is unsuccessfulgetDefaultCharset()
public String encode(String str, String charsetName) throws UnsupportedEncodingException
str
- string to convert to a URL safe formcharsetName
- the charset for strUnsupportedEncodingException
- Thrown if charset is not supportedpublic static final byte[] encodeUrl(BitSet urlsafe, byte[] bytes)
urlsafe
- bitset of characters deemed URL safebytes
- array of bytes to convert to URL safe characterspublic String getDefaultCharset()