The NoteBook of EricKong

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

          public class EscapeUnescape {
           public static String escape(String src) {
            int i;
            char j;
            StringBuffer tmp = new StringBuffer();
            tmp.ensureCapacity(src.length() * 6);
            for (i = 0; i < src.length(); i++) {
             j = src.charAt(i);
             if (Character.isDigit(j) || Character.isLowerCase(j)
               || Character.isUpperCase(j))
              tmp.append(j);
             else if (j < 256) {
              tmp.append("%");
              if (j < 16)
               tmp.append("0");
              tmp.append(Integer.toString(j, 16));
             } else {
              tmp.append("%u");
              tmp.append(Integer.toString(j, 16));
             }
            }
            return tmp.toString();
           }

           public static String unescape(String src) {
            StringBuffer tmp = new StringBuffer();
            tmp.ensureCapacity(src.length());
            int lastPos = 0, pos = 0;
            char ch;
            while (lastPos < src.length()) {
             pos = src.indexOf("%", lastPos);
             if (pos == lastPos) {
              if (src.charAt(pos + 1) == 'u') {
               ch = (char) Integer.parseInt(src
                 .substring(pos + 2, pos + 6), 16);
               tmp.append(ch);
               lastPos = pos + 6;
              } else {
               ch = (char) Integer.parseInt(src
                 .substring(pos + 1, pos + 3), 16);
               tmp.append(ch);
               lastPos = pos + 3;
              }
             } else {
              if (pos == -1) {
               tmp.append(src.substring(lastPos));
               lastPos = src.length();
              } else {
               tmp.append(src.substring(lastPos, pos));
               lastPos = pos;
              }
             }
            }
            return tmp.toString();
           }

           public static void main(String[] args) {
            String tmp = "~!@#$%^&*()_+|\\=-,./?><;'][{}\"";
            System.out.println("testing escape : " + tmp);
            tmp = escape(tmp);
            System.out.println(tmp);
            System.out.println("testing unescape :" + tmp);
            System.out.println(unescape(tmp));
           }
          }
          www.puyufanyi.com

          posted on 2011-05-10 15:25 Eric_jiang 閱讀(498) 評(píng)論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 固原市| 三河市| 沙湾县| 那坡县| 宁波市| 石棉县| 吴堡县| 灵台县| 德安县| 萍乡市| 龙江县| 施秉县| 皋兰县| 铁力市| 平利县| 东平县| 林口县| 志丹县| 伊宁县| 永定县| 陆河县| 陕西省| 麻阳| 金华市| 望江县| 湛江市| 乐东| 湾仔区| 天津市| 手游| 肥东县| 江源县| 松桃| 丹凤县| 南充市| 长治市| 错那县| 金溪县| 张家港市| 沧源| 玉山县|