home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / java / net / URLEncoder.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  1.4 KB  |  72 lines

  1. package java.net;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.IOException;
  5. import java.io.OutputStreamWriter;
  6. import java.util.BitSet;
  7.  
  8. public class URLEncoder {
  9.    static BitSet dontNeedEncoding = new BitSet(256);
  10.  
  11.    private URLEncoder() {
  12.    }
  13.  
  14.    public static String encode(String var0) {
  15.       byte var1 = 10;
  16.       ByteArrayOutputStream var2 = new ByteArrayOutputStream(var0.length());
  17.       ByteArrayOutputStream var3 = new ByteArrayOutputStream(var1);
  18.       OutputStreamWriter var4 = new OutputStreamWriter(var3);
  19.  
  20.       for(int var5 = 0; var5 < var0.length(); ++var5) {
  21.          char var6 = var0.charAt(var5);
  22.          if (dontNeedEncoding.get(var6)) {
  23.             if (var6 == ' ') {
  24.                var6 = '+';
  25.             }
  26.  
  27.             var2.write(var6);
  28.          } else {
  29.             try {
  30.                var4.write(var6);
  31.                var4.flush();
  32.             } catch (IOException var9) {
  33.                var3.reset();
  34.                continue;
  35.             }
  36.  
  37.             byte[] var7 = var3.toByteArray();
  38.  
  39.             for(int var8 = 0; var8 < var7.length; ++var8) {
  40.                var2.write(37);
  41.                var2.write(Character.forDigit(var7[var8] >> 4 & 15, 16));
  42.                var2.write(Character.forDigit(var7[var8] & 15, 16));
  43.             }
  44.  
  45.             var3.reset();
  46.          }
  47.       }
  48.  
  49.       return var2.toString();
  50.    }
  51.  
  52.    static {
  53.       for(int var0 = 97; var0 <= 122; ++var0) {
  54.          dontNeedEncoding.set(var0);
  55.       }
  56.  
  57.       for(int var1 = 65; var1 <= 90; ++var1) {
  58.          dontNeedEncoding.set(var1);
  59.       }
  60.  
  61.       for(int var2 = 48; var2 <= 57; ++var2) {
  62.          dontNeedEncoding.set(var2);
  63.       }
  64.  
  65.       dontNeedEncoding.set(32);
  66.       dontNeedEncoding.set(45);
  67.       dontNeedEncoding.set(95);
  68.       dontNeedEncoding.set(46);
  69.       dontNeedEncoding.set(42);
  70.    }
  71. }
  72.