Package org.apache.commons.codec.net
Class URLCodec
- java.lang.Object
-
- org.apache.commons.codec.net.URLCodec
-
- All Implemented Interfaces:
BinaryDecoder
,BinaryEncoder
,Decoder
,Encoder
,StringDecoder
,StringEncoder
public class URLCodec extends java.lang.Object implements BinaryEncoder, BinaryDecoder, StringEncoder, StringDecoder
Implements the 'www-form-urlencoded' encoding scheme, also misleadingly known as URL encoding.This codec is meant to be a replacement for standard Java classes
URLEncoder
andURLDecoder
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 as of 1.11
- Since:
- 1.2
- See Also:
- Chapter 17.13.4 Form content types of the HTML 4.01 Specification
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
charset
Deprecated.TODO: This field will be changed to a private final Charset in 2.0.protected static byte
ESCAPE_CHAR
Release 1.5 made this field final.protected static java.util.BitSet
WWW_FORM_URL
Deprecated.1.11 Will be removed in 2.0 (CODEC-230)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description byte[]
decode(byte[] bytes)
Decodes an array of URL safe 7-bit characters into an array of original bytes.java.lang.Object
decode(java.lang.Object obj)
Decodes a URL safe object into its original form.java.lang.String
decode(java.lang.String str)
Decodes a URL safe string into its original form using the default string charset.java.lang.String
decode(java.lang.String str, java.lang.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.java.lang.Object
encode(java.lang.Object obj)
Encodes an object into its URL safe form.java.lang.String
encode(java.lang.String str)
Encodes a string into its URL safe form using the default string charset.java.lang.String
encode(java.lang.String str, java.lang.String charsetName)
Encodes a string into its URL safe form using the specified string charset.static byte[]
encodeUrl(java.util.BitSet urlsafe, byte[] bytes)
Encodes an array of bytes into an array of URL safe 7-bit characters.java.lang.String
getDefaultCharset()
The default charset used for string decoding and encoding.java.lang.String
getEncoding()
Deprecated.UsegetDefaultCharset()
, will be removed in 2.0.
-
-
-
Field Detail
-
charset
@Deprecated protected volatile java.lang.String charset
Deprecated.TODO: This field will be changed to a private final Charset in 2.0. (CODEC-126)The default charset used for string decoding and encoding.
-
ESCAPE_CHAR
protected static final byte ESCAPE_CHAR
Release 1.5 made this field final.- See Also:
- Constant Field Values
-
WWW_FORM_URL
@Deprecated protected static final java.util.BitSet WWW_FORM_URL
Deprecated.1.11 Will be removed in 2.0 (CODEC-230)BitSet of www-form-url safe characters. This is a copy of the internal BitSet which is now used for the conversion. Changes to this field are ignored.
-
-
Method Detail
-
encodeUrl
public static final byte[] encodeUrl(java.util.BitSet urlsafe, byte[] bytes)
Encodes an array of bytes into an array of URL safe 7-bit characters. Unsafe characters are escaped.- Parameters:
urlsafe
- bitset of characters deemed URL safebytes
- array of bytes to convert to URL safe characters- Returns:
- array of bytes containing URL safe characters
-
decodeUrl
public static final byte[] decodeUrl(byte[] bytes) throws DecoderException
Decodes an array of URL safe 7-bit characters into an array of original bytes. Escaped characters are converted back to their original representation.- Parameters:
bytes
- array of URL safe characters- Returns:
- array of original bytes
- Throws:
DecoderException
- Thrown if URL decoding is unsuccessful
-
encode
public byte[] encode(byte[] bytes)
Encodes an array of bytes into an array of URL safe 7-bit characters. Unsafe characters are escaped.- Specified by:
encode
in interfaceBinaryEncoder
- Parameters:
bytes
- array of bytes to convert to URL safe characters- Returns:
- array of bytes containing URL safe characters
-
decode
public byte[] decode(byte[] bytes) throws DecoderException
Decodes an array of URL safe 7-bit characters into an array of original bytes. Escaped characters are converted back to their original representation.- Specified by:
decode
in interfaceBinaryDecoder
- Parameters:
bytes
- array of URL safe characters- Returns:
- array of original bytes
- Throws:
DecoderException
- Thrown if URL decoding is unsuccessful
-
encode
public java.lang.String encode(java.lang.String str, java.lang.String charsetName) throws java.io.UnsupportedEncodingException
Encodes a string into its URL safe form using the specified string charset. Unsafe characters are escaped.- Parameters:
str
- string to convert to a URL safe formcharsetName
- the charset for str- Returns:
- URL safe string
- Throws:
java.io.UnsupportedEncodingException
- Thrown if charset is not supported
-
encode
public java.lang.String encode(java.lang.String str) throws EncoderException
Encodes a string into its URL safe form using the default string charset. Unsafe characters are escaped.- Specified by:
encode
in interfaceStringEncoder
- Parameters:
str
- string to convert to a URL safe form- Returns:
- URL safe string
- Throws:
EncoderException
- Thrown if URL encoding is unsuccessful- See Also:
getDefaultCharset()
-
decode
public java.lang.String decode(java.lang.String str, java.lang.String charsetName) throws DecoderException, java.io.UnsupportedEncodingException
Decodes a URL safe string into its original form using the specified encoding. Escaped characters are converted back to their original representation.- Parameters:
str
- URL safe string to convert into its original formcharsetName
- the original string charset- Returns:
- original string
- Throws:
DecoderException
- Thrown if URL decoding is unsuccessfuljava.io.UnsupportedEncodingException
- Thrown if charset is not supported
-
decode
public java.lang.String decode(java.lang.String str) throws DecoderException
Decodes a URL safe string into its original form using the default string charset. Escaped characters are converted back to their original representation.- Specified by:
decode
in interfaceStringDecoder
- Parameters:
str
- URL safe string to convert into its original form- Returns:
- original string
- Throws:
DecoderException
- Thrown if URL decoding is unsuccessful- See Also:
getDefaultCharset()
-
encode
public java.lang.Object encode(java.lang.Object obj) throws EncoderException
Encodes an object into its URL safe form. Unsafe characters are escaped.- Specified by:
encode
in interfaceEncoder
- Parameters:
obj
- string to convert to a URL safe form- Returns:
- URL safe object
- Throws:
EncoderException
- Thrown if URL encoding is not applicable to objects of this type or if encoding is unsuccessful
-
decode
public java.lang.Object decode(java.lang.Object obj) throws DecoderException
Decodes a URL safe object into its original form. Escaped characters are converted back to their original representation.- Specified by:
decode
in interfaceDecoder
- Parameters:
obj
- URL safe object to convert into its original form- Returns:
- original object
- Throws:
DecoderException
- Thrown if the argument is not aString
orbyte[]
. Thrown if a failure condition is encountered during the decode process.
-
getDefaultCharset
public java.lang.String getDefaultCharset()
The default charset used for string decoding and encoding.- Returns:
- the default string charset.
-
getEncoding
@Deprecated public java.lang.String getEncoding()
Deprecated.UsegetDefaultCharset()
, will be removed in 2.0.TheString
encoding used for decoding and encoding.- Returns:
- Returns the encoding.
-
-