home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / net / URLEncoder.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  1.5 KB  |  83 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.    static final int caseDiff = 32;
  11.  
  12.    private URLEncoder() {
  13.    }
  14.  
  15.    public static String encode(String var0) {
  16.       byte var1 = 10;
  17.       ByteArrayOutputStream var2 = new ByteArrayOutputStream(var0.length());
  18.       ByteArrayOutputStream var3 = new ByteArrayOutputStream(var1);
  19.       OutputStreamWriter var4 = new OutputStreamWriter(var3);
  20.  
  21.       for(int var5 = 0; var5 < var0.length(); ++var5) {
  22.          char var6 = var0.charAt(var5);
  23.          if (dontNeedEncoding.get(var6)) {
  24.             if (var6 == ' ') {
  25.                var6 = '+';
  26.             }
  27.  
  28.             var2.write(var6);
  29.          } else {
  30.             try {
  31.                var4.write(var6);
  32.                var4.flush();
  33.             } catch (IOException var10) {
  34.                var3.reset();
  35.                continue;
  36.             }
  37.  
  38.             byte[] var7 = var3.toByteArray();
  39.  
  40.             for(int var8 = 0; var8 < var7.length; ++var8) {
  41.                var2.write(37);
  42.                char var9 = Character.forDigit(var7[var8] >> 4 & 15, 16);
  43.                if (Character.isLetter(var9)) {
  44.                   var9 = (char)(var9 - 32);
  45.                }
  46.  
  47.                var2.write(var9);
  48.                var9 = Character.forDigit(var7[var8] & 15, 16);
  49.                if (Character.isLetter(var9)) {
  50.                   var9 = (char)(var9 - 32);
  51.                }
  52.  
  53.                var2.write(var9);
  54.             }
  55.  
  56.             var3.reset();
  57.          }
  58.       }
  59.  
  60.       return var2.toString();
  61.    }
  62.  
  63.    static {
  64.       for(int var0 = 97; var0 <= 122; ++var0) {
  65.          dontNeedEncoding.set(var0);
  66.       }
  67.  
  68.       for(int var1 = 65; var1 <= 90; ++var1) {
  69.          dontNeedEncoding.set(var1);
  70.       }
  71.  
  72.       for(int var2 = 48; var2 <= 57; ++var2) {
  73.          dontNeedEncoding.set(var2);
  74.       }
  75.  
  76.       dontNeedEncoding.set(32);
  77.       dontNeedEncoding.set(45);
  78.       dontNeedEncoding.set(95);
  79.       dontNeedEncoding.set(46);
  80.       dontNeedEncoding.set(42);
  81.    }
  82. }
  83.