[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz gzz/util/URIUtil.java test/gzz/util/URIUtil...
From: |
Benja Fallenstein |
Subject: |
[Gzz-commits] gzz gzz/util/URIUtil.java test/gzz/util/URIUtil... |
Date: |
Wed, 01 Jan 2003 12:17:15 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Benja Fallenstein <address@hidden> 03/01/01 12:17:15
Modified files:
gzz/util : URIUtil.java
Added files:
test/gzz/util : URIUtil.test
Log message:
Unicode<->URI conversion works *took hours* *argh*
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/util/URIUtil.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/gzz/util/URIUtil.test?rev=1.1
Patches:
Index: gzz/gzz/util/URIUtil.java
diff -u gzz/gzz/util/URIUtil.java:1.1 gzz/gzz/util/URIUtil.java:1.2
--- gzz/gzz/util/URIUtil.java:1.1 Wed Jan 1 09:55:49 2003
+++ gzz/gzz/util/URIUtil.java Wed Jan 1 12:17:15 2003
@@ -13,12 +13,22 @@
byte[] bytes;
try {
bytes = s.getBytes("UTF-8");
+ //System.out.println(new String(bytes, "UTF-8"));
} catch(UnsupportedEncodingException e) {
throw new Error("JVM does not support UTF-8 encoding (!)");
}
- for(int i=0; i<s.length(); i++) {
- byte c = bytes[i];
+ /*
+ for(int i=0; i<bytes.length; i++)
+ System.out.print(bytes[i]+" ");
+ System.out.println();
+ */
+
+ for(int i=0; i<bytes.length; i++) {
+ char c;
+ if(bytes[i] >= 0) c = (char)bytes[i];
+ else c = (char)(128 + (char)(bytes[i] & 127));
+
if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') ||
(c >= '0' && c <= '9') || c=='(' || c==')' ||
c=='+' || c==',' || c=='-' || c=='.' || c==':' ||
@@ -27,11 +37,12 @@
buf.append((char)c);
else {
buf.append("%");
- byte b1 = (byte)(c >>> 4), b2 = (byte)(c & 16);
- if(b1 < 10) buf.append('0'+b1);
- else buf.append('a'+b1-10);
- if(b2 < 10) buf.append('0'+b2);
- else buf.append('a'+b1-12);
+ char b1 = (char)(c >> 4), b2 = (char)(c % 16);
+ //System.out.println((int)c+" "+(int)b1+" "+(int)b2);
+ if(b1 < 10) buf.append((char)('0'+b1));
+ else buf.append((char)('a'+b1-10));
+ if(b2 < 10) buf.append((char)('0'+b2));
+ else buf.append((char)('a'+b2-10));
}
}
return buf.toString();
@@ -43,19 +54,27 @@
for(int k=0; k<s.length(); k++) {
char c = s.charAt(k);
- if(c != '%')
+ if(c != '%') {
buf.write((byte)c);
- else {
+ //System.out.println("w: "+c);
+ } else {
char d1 = s.charAt(k+1),
- d2 = s.charAt(k+1);
+ d2 = s.charAt(k+2);
k += 2;
- byte v = (byte)((fromHex(d1) << 4) + fromHex(d2));
- buf.write(v);
+ int v = (fromHex(d1)*16) + fromHex(d2);
+ //System.out.println("w: "+v);
+ buf.write((byte)v);
}
}
byte[] arr = buf.toByteArray();
+
+ /*
+ for(int i=0; i<arr.length; i++)
+ System.out.print(arr[i]+" ");
+ System.out.println();
+ */
try {
return new String(arr, "UTF-8");
@@ -65,7 +84,7 @@
}
public static byte fromHex(char hex) {
- if('0' <= hex && hex <= 9)
+ if('0' <= hex && hex <= '9')
return (byte)(hex - '0');
if('a' <= hex && hex <= 'h')
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] gzz gzz/util/URIUtil.java test/gzz/util/URIUtil...,
Benja Fallenstein <=