package context.arch.comm.protocol; import java.io.ByteArrayOutputStream; /** * This class decodes application/x-www-form-urlencoded MIME types * doing the inverse of java.net.URLEncoder. * * @see java.net.URLEncoder */ public class URLDecoder { /** * Empty constructor for URLDecoder */ private URLDecoder() { } /** * Translates String from x-www-form-urlEncoded format into text * * @param s String to be translated * @return the translated String */ public static String decode(String s) { ByteArrayOutputStream out = new ByteArrayOutputStream(s.length()); for(int i=0; i<s.length(); i++) { int c = (int)s.charAt(i); if (c == '+') { out.write(' ');; } else if (c == '%') { int c1 = Character.digit(s.charAt(++i), 16); int c2 = Character.digit(s.charAt(++i), 16); out.write((char)(c1*16+c2)); } else { out.write(c); } } return out.toString(); } }