我的java天地

重构JDK中的decode方法

在实际使用时会存在.net语言中的encode。然后java中decode出来的结果不一样,以下为解决办法
/**
* add by
* @param str
* @param enc
* @return
* @throws UnsupportedEncodingException
*/
public static String decode(String str, String enc) throws UnsupportedEncodingException{
if (enc.length() == 0) {
   throw new UnsupportedEncodingException ("URLDecoder: empty string enc parameter");
}
List l = new LinkedList();
int strLen = str.length();
for(int i=0;i<strLen;++i){
char c = str.charAt(i);
switch (c) {
case '+':
l.add((byte)' ');
break;
case '%':
byte b = (byte)Integer.parseInt(str.substring(i+1, i+3),16);
l.add(b);
i+=2;
break;
default:
l.add((byte)str.charAt(i));
break;
}
}
byte[] bs = new byte[l.size()];
for(int i=0;i<l.size();++i)
bs[i] = (Byte)l.get(i);
return new String(bs,enc);
}

posted on 2012-03-20 17:39 tobyxiong 阅读(732) 评论(0)  编辑  收藏 所属分类: java


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年3月>
26272829123
45678910
11121314151617
18192021222324
25262728293031
1234567

导航

统计

常用链接

留言簿(3)

随笔分类(144)

随笔档案(157)

相册

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜