home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 January / PCO0198.ISO / 1&1 / java.z / java_301 / java / net / URLEncoder.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-10-20  |  1.2 KB  |  50 lines

  1. package java.net;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.util.BitSet;
  5.  
  6. public class URLEncoder {
  7.    static BitSet dontNeedEncoding = new BitSet(256);
  8.  
  9.    private URLEncoder() {
  10.    }
  11.  
  12.    public static String encode(String s) {
  13.       ByteArrayOutputStream out = new ByteArrayOutputStream(s.length());
  14.  
  15.       for(int i = 0; i < s.length(); ++i) {
  16.          int c = s.charAt(i);
  17.          if (dontNeedEncoding.get(c)) {
  18.             if (c == 32) {
  19.                c = 43;
  20.             }
  21.  
  22.             out.write(c);
  23.          } else {
  24.             out.write(37);
  25.             out.write(Character.forDigit(c >> 4, 16));
  26.             out.write(Character.forDigit(c & 15, 16));
  27.          }
  28.       }
  29.  
  30.       return out.toString();
  31.    }
  32.  
  33.    static {
  34.       for(int i = 97; i <= 122; ++i) {
  35.          dontNeedEncoding.set(i);
  36.       }
  37.  
  38.       for(int var1 = 65; var1 <= 90; ++var1) {
  39.          dontNeedEncoding.set(var1);
  40.       }
  41.  
  42.       for(int var2 = 48; var2 <= 57; ++var2) {
  43.          dontNeedEncoding.set(var2);
  44.       }
  45.  
  46.       dontNeedEncoding.set(95);
  47.       dontNeedEncoding.set(32);
  48.    }
  49. }
  50.