The NoteBook of EricKong

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

          public class Conversion {

           /**
            * 將字符串轉成unicode
            *
            * @param str
            *            待轉字符串
            * @return unicode字符串
            */
           public String convert(String str) {
            str = (str == null ? "" : str);
            String tmp;
            StringBuffer sb = new StringBuffer(1000);
            char c;
            int i, j;
            sb.setLength(0);
            for (i = 0; i < str.length(); i++) {
             c = str.charAt(i);
             sb.append("\\u");
             j = (c >>> 8); // 取出高8位
             tmp = Integer.toHexString(j);
             if (tmp.length() == 1)
              sb.append("0");
             sb.append(tmp);
             j = (c & 0xFF); // 取出低8位
             tmp = Integer.toHexString(j);
             if (tmp.length() == 1)
              sb.append("0");
             sb.append(tmp);

            }
            return (new String(sb));
           }

           /**
            * 將unicode 字符串
            *
            * @param str
            *            待轉字符串
            * @return 普通字符串
            */
           public String revert(String str) {
            str = (str == null ? "" : str);
            if (str.indexOf("\\u") == -1)// 如果不是unicode碼則原樣返回
             return str;

            StringBuffer sb = new StringBuffer(1000);

            for (int i = 0; i < str.length() - 6;) {
             String strTemp = str.substring(i, i + 6);
             String value = strTemp.substring(2);
             int c = 0;
             for (int j = 0; j < value.length(); j++) {
              char tempChar = value.charAt(j);
              int t = 0;
              switch (tempChar) {
              case 'a':
               t = 10;
               break;
              case 'b':
               t = 11;
               break;
              case 'c':
               t = 12;
               break;
              case 'd':
               t = 13;
               break;
              case 'e':
               t = 14;
               break;
              case 'f':
               t = 15;
               break;
              default:
               t = tempChar - 48;
               break;
              }

              c += t * ((int) Math.pow(16, (value.length() - j - 1)));
             }
             sb.append((char) c);
             i = i + 6;
            }
            return sb.toString();
           }

           public static void main(String args[]) {
            // unicode轉中文
            String str = "\u767b\u5f55\u793e\u533a";
            Conversion con = new Conversion();
           
            System.out.println(con.revert(str));

           }

          }

          posted on 2011-05-10 19:10 Eric_jiang 閱讀(1790) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 中山市| 泰州市| 蕲春县| 托克托县| 准格尔旗| 余庆县| 奈曼旗| 申扎县| 怀远县| 潍坊市| 达孜县| 林芝县| 米脂县| 玛纳斯县| 北京市| 嘉定区| 宣化县| 闻喜县| 南昌市| 忻州市| 河曲县| 疏附县| 鹿泉市| 黄骅市| 甘洛县| 肇庆市| 乌拉特前旗| 托克托县| 嘉峪关市| 察雅县| 建德市| 太康县| 靖宇县| 宝兴县| 同仁县| 万全县| 乐清市| 日照市| 曲松县| 新龙县| 六盘水市|