Here is one example:
Without URL encoding (505 code)
GET /context/api.do?token=encrypted&p1=xxx&p2=xxx xx HTTP/1.1
With URL encoding (200 code)
GET /context/api.do?token=encrypted&p1=xxx&p2=xxx%20xx HTTP/1.1
In JDK, there is a URLEncoder utility class to provide methods for URL encode and decode.
http://download.oracle.com/javase/1.4.2/docs/api/java/net/URLEncoder.html
Note that because the <space> character is very commonly used, a special code ( the "+" sign) has been reserved as its URL encoding. Thus the string "A B" can be URL encoded as either "A%20B" or "A+B". Therefore in JDK, it was converted to plus sign (+).
Here are excerpts from SUN javadoc
--------------------------------------------------
When encoding a String, the following rules apply:
- The alphanumeric characters "
a" through "z", "A" through "Z" and "0" through "9" remain the same. - The special characters "
.", "-", "*", and "_" remain the same. - The space character "
" is converted into a plus sign "+". - All other characters are unsafe and are first converted into one or more bytes using some encoding scheme. Then each byte is represented by the 3-character string "
%xy", where xy is the two-digit hexadecimal representation of the byte. The recommended encoding scheme to use is UTF-8. However, for compatibility reasons, if an encoding is not specified, then the default encoding of the platform is used.
No comments:
Post a Comment