The NoteBook of EricKong

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

          public class Conversion {

           /**
            * 將字符串轉(zhuǎn)成unicode
            *
            * @param str
            *            待轉(zhuǎn)字符串
            * @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
            *            待轉(zhuǎn)字符串
            * @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轉(zhuǎn)中文
            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 閱讀(1791) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 美姑县| 大宁县| 镇安县| 祁东县| 威远县| 通许县| 嘉定区| 平陆县| 天峨县| 汉沽区| 汉川市| 乌鲁木齐市| 剑川县| 商河县| 内黄县| 榆中县| 靖边县| 临泽县| 彰化市| 政和县| 海晏县| 水富县| 南涧| 南和县| 定兴县| 阿拉尔市| 五台县| 金秀| 枣强县| 小金县| 辰溪县| 长治县| 旬邑县| 江永县| 舟曲县| 黄石市| 吉林省| 九龙县| 霍山县| 龙里县| 城步|