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

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

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(144)

          隨筆檔案(157)

          相冊

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 逊克县| 中卫市| 井冈山市| 张家口市| 安顺市| 麦盖提县| 张家界市| 青浦区| 黄大仙区| 海安县| 枝江市| 康定县| 南昌市| 株洲县| 通渭县| 环江| 江都市| 尚义县| 杭锦后旗| 拜泉县| 漯河市| 潍坊市| 平远县| 闻喜县| 昂仁县| 揭西县| 清水河县| 西吉县| 永善县| 星子县| 汽车| 和平县| 容城县| 平乐县| 平陆县| 依兰县| 新建县| 新余市| 小金县| 肃北| 红安县|