home *** CD-ROM | disk | FTP | other *** search
- package javax.xml.parsers;
-
- import java.io.File;
- import java.io.UnsupportedEncodingException;
-
- class FilePathToURI {
- private static boolean[] gNeedEscaping = new boolean[128];
- private static char[] gAfterEscaping1 = new char[128];
- private static char[] gAfterEscaping2 = new char[128];
- private static char[] gHexChs = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
-
- public static String filepath2URI(String var0) {
- if (var0 == null) {
- return null;
- } else {
- char var1 = File.separatorChar;
- var0 = var0.replace(var1, '/');
- int var2 = var0.length();
- StringBuffer var4 = new StringBuffer(var2 * 3);
- var4.append("file://");
- if (var2 >= 2 && var0.charAt(1) == ':') {
- char var3 = Character.toUpperCase(var0.charAt(0));
- if (var3 >= 'A' && var3 <= 'Z') {
- var4.append('/');
- }
- }
-
- int var5;
- for(var5 = 0; var5 < var2; ++var5) {
- char var12 = var0.charAt(var5);
- if (var12 >= 128) {
- break;
- }
-
- if (gNeedEscaping[var12]) {
- var4.append('%');
- var4.append(gAfterEscaping1[var12]);
- var4.append(gAfterEscaping2[var12]);
- } else {
- var4.append((char)var12);
- }
- }
-
- if (var5 < var2) {
- Object var6 = null;
-
- try {
- var15 = var0.substring(var5).getBytes("UTF-8");
- } catch (UnsupportedEncodingException var9) {
- return var0;
- }
-
- for(byte var7 : var15) {
- if (var7 < 0) {
- int var13 = var7 + 256;
- var4.append('%');
- var4.append(gHexChs[var13 >> 4]);
- var4.append(gHexChs[var13 & 15]);
- } else if (gNeedEscaping[var7]) {
- var4.append('%');
- var4.append(gAfterEscaping1[var7]);
- var4.append(gAfterEscaping2[var7]);
- } else {
- var4.append((char)var7);
- }
- }
- }
-
- return var4.toString();
- }
- }
-
- static {
- for(int var0 = 0; var0 <= 31; ++var0) {
- gNeedEscaping[var0] = true;
- gAfterEscaping1[var0] = gHexChs[var0 >> 4];
- gAfterEscaping2[var0] = gHexChs[var0 & 15];
- }
-
- gNeedEscaping[127] = true;
- gAfterEscaping1[127] = '7';
- gAfterEscaping2[127] = 'F';
-
- for(char var3 : new char[]{' ', '<', '>', '#', '%', '"', '{', '}', '|', '\\', '^', '~', '[', ']', '`'}) {
- gNeedEscaping[var3] = true;
- gAfterEscaping1[var3] = gHexChs[var3 >> 4];
- gAfterEscaping2[var3] = gHexChs[var3 & 15];
- }
-
- }
- }
-