home *** CD-ROM | disk | FTP | other *** search
- package java.net;
-
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.OutputStreamWriter;
- import java.util.BitSet;
-
- public class URLEncoder {
- static BitSet dontNeedEncoding = new BitSet(256);
- static final int caseDiff = 32;
-
- private URLEncoder() {
- }
-
- public static String encode(String var0) {
- byte var1 = 10;
- ByteArrayOutputStream var2 = new ByteArrayOutputStream(var0.length());
- ByteArrayOutputStream var3 = new ByteArrayOutputStream(var1);
- OutputStreamWriter var4 = new OutputStreamWriter(var3);
-
- for(int var5 = 0; var5 < var0.length(); ++var5) {
- char var6 = var0.charAt(var5);
- if (dontNeedEncoding.get(var6)) {
- if (var6 == ' ') {
- var6 = '+';
- }
-
- var2.write(var6);
- } else {
- try {
- var4.write(var6);
- var4.flush();
- } catch (IOException var10) {
- var3.reset();
- continue;
- }
-
- byte[] var7 = var3.toByteArray();
-
- for(int var8 = 0; var8 < var7.length; ++var8) {
- var2.write(37);
- char var9 = Character.forDigit(var7[var8] >> 4 & 15, 16);
- if (Character.isLetter(var9)) {
- var9 = (char)(var9 - 32);
- }
-
- var2.write(var9);
- var9 = Character.forDigit(var7[var8] & 15, 16);
- if (Character.isLetter(var9)) {
- var9 = (char)(var9 - 32);
- }
-
- var2.write(var9);
- }
-
- var3.reset();
- }
- }
-
- return var2.toString();
- }
-
- static {
- for(int var0 = 97; var0 <= 122; ++var0) {
- dontNeedEncoding.set(var0);
- }
-
- for(int var1 = 65; var1 <= 90; ++var1) {
- dontNeedEncoding.set(var1);
- }
-
- for(int var2 = 48; var2 <= 57; ++var2) {
- dontNeedEncoding.set(var2);
- }
-
- dontNeedEncoding.set(32);
- dontNeedEncoding.set(45);
- dontNeedEncoding.set(95);
- dontNeedEncoding.set(46);
- dontNeedEncoding.set(42);
- }
- }
-