The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            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 閱讀(497) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 三门县| 黄大仙区| 普定县| 搜索| 夹江县| 仙居县| 灌阳县| 凤城市| 乐至县| 晋城| 泗水县| 两当县| 洛扎县| 尖扎县| 乐至县| 西峡县| 鄄城县| 淄博市| 太仓市| 阿克陶县| 和平区| 临夏县| 石台县| 特克斯县| 高陵县| 金乡县| 巨鹿县| 水城县| 晋江市| 大方县| 忻州市| 象州县| 鄂伦春自治旗| 盐城市| 平南县| 通江县| 武定县| 景宁| 邮箱| 中超| 万全县|