我的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)

          相冊

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 界首市| 伊金霍洛旗| 兴山县| 北辰区| 海晏县| 潢川县| 沙田区| 南皮县| 永修县| 广昌县| 东源县| 汉阴县| 达尔| 砀山县| 德江县| 色达县| 元阳县| 柳州市| 南川市| 安远县| 长子县| 嫩江县| 叶城县| 大埔区| 揭西县| 卓资县| 日喀则市| 开封县| 西青区| 高青县| 兴海县| 长宁区| 咸丰县| 深水埗区| 临桂县| 宝鸡市| 特克斯县| 健康| 阿拉善盟| 方山县| 岱山县|