home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / net / URLDecoder.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.7 KB  |  80 lines

  1. package java.net;
  2.  
  3. import java.io.UnsupportedEncodingException;
  4.  
  5. public class URLDecoder {
  6.    static String dfltEncName;
  7.  
  8.    /** @deprecated */
  9.    @Deprecated
  10.    public static String decode(String var0) {
  11.       String var1 = null;
  12.  
  13.       try {
  14.          var1 = decode(var0, dfltEncName);
  15.       } catch (UnsupportedEncodingException var3) {
  16.       }
  17.  
  18.       return var1;
  19.    }
  20.  
  21.    public static String decode(String var0, String var1) throws UnsupportedEncodingException {
  22.       boolean var2 = false;
  23.       int var3 = var0.length();
  24.       StringBuffer var4 = new StringBuffer(var3 > 500 ? var3 / 2 : var3);
  25.       int var5 = 0;
  26.       if (var1.length() == 0) {
  27.          throw new UnsupportedEncodingException("URLDecoder: empty string enc parameter");
  28.       } else {
  29.          byte[] var7 = null;
  30.  
  31.          while(var5 < var3) {
  32.             char var6 = var0.charAt(var5);
  33.             switch (var6) {
  34.                case '%':
  35.                   try {
  36.                      if (var7 == null) {
  37.                         var7 = new byte[(var3 - var5) / 3];
  38.                      }
  39.  
  40.                      int var8 = 0;
  41.  
  42.                      while(var5 + 2 < var3 && var6 == '%') {
  43.                         var7[var8++] = (byte)Integer.parseInt(var0.substring(var5 + 1, var5 + 3), 16);
  44.                         var5 += 3;
  45.                         if (var5 < var3) {
  46.                            var6 = var0.charAt(var5);
  47.                         }
  48.                      }
  49.  
  50.                      if (var5 < var3 && var6 == '%') {
  51.                         throw new IllegalArgumentException("URLDecoder: Incomplete trailing escape (%) pattern");
  52.                      }
  53.  
  54.                      var4.append(new String(var7, 0, var8, var1));
  55.                   } catch (NumberFormatException var9) {
  56.                      throw new IllegalArgumentException("URLDecoder: Illegal hex characters in escape (%) pattern - " + var9.getMessage());
  57.                   }
  58.  
  59.                   var2 = true;
  60.                   break;
  61.                case '+':
  62.                   var4.append(' ');
  63.                   ++var5;
  64.                   var2 = true;
  65.                   break;
  66.                default:
  67.                   var4.append(var6);
  68.                   ++var5;
  69.             }
  70.          }
  71.  
  72.          return var2 ? var4.toString() : var0;
  73.       }
  74.    }
  75.  
  76.    static {
  77.       dfltEncName = URLEncoder.dfltEncName;
  78.    }
  79. }
  80.