我的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 閱讀(769) 評論(0)  編輯  收藏 所屬分類: java

          <2012年3月>
          26272829123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(144)

          隨筆檔案(157)

          相冊

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 霍林郭勒市| 隆子县| 安乡县| 东城区| 三亚市| 西畴县| 黄山市| 绵竹市| 忻城县| 渝北区| 宁陵县| 巴彦县| 晋州市| 大竹县| 泰州市| 府谷县| 通城县| 昌吉市| 梁山县| 临汾市| 平舆县| 香港 | 清流县| 雅江县| 鄂托克旗| 禹城市| 岳普湖县| 财经| 磐安县| 青州市| 阳春市| 新兴县| 广宁县| 张家界市| 博兴县| 上蔡县| 龙岩市| 陈巴尔虎旗| 扬州市| 长丰县| 喀喇沁旗|