Mega Code Archive

 
Categories / Java / Network Protocol
 

A class that encodes URL parameter values for MIDP devices

/* Chapter 3 - Simple Protocols Java 2 Network Protocols Black Book by Al Williams     Paraglyph Press 2001 */ /**  * A class that encodes URL parameter values  * for MIDP devices.  */ public class EncodeURL {     // The characters that do not need to     // be converted.     private static final String noEncode =         "abcdefghijklmnopqrstuvwxyz" +         "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +         "0123456789.*-_";     // Mapping value values 0 through 15 to the     // corresponding hexadecimal character.     private static final char[] hexDigits = {         '0', '1', '2', '3', '4', '5', '6', '7',         '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'     };     // Encodes the given string as required for     // use in a URL query string or POST data.     public static String encode(String src) {         StringBuffer result = new StringBuffer(src.length());         int count = src.length();         for (int i = 0; i < count; i++) {             char c = src.charAt(i);             if (noEncode.indexOf(c) != -1) {                 // This is a character that does not                 // need to be encoded                 result.append(c);                 continue;             }             // Space is converted to '+'             if (c == ' ') {                 result.append('+');                 continue;             }             // The remaining characters must be converted to             // '%XY' where 'XY' is the hexadecimal value of             // the character itself.             result.append('%');             result.append(hexDigits[(c >> 4) & 0xF]);             result.append(hexDigits[c & 0xF]);         }         return result.toString();     } }