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
          主站蜘蛛池模板: 南郑县| 商南县| 古丈县| 大姚县| 通辽市| 南平市| 延安市| 芜湖县| 天峻县| 辛集市| 灌南县| 安达市| 太和县| 霞浦县| 抚顺市| 崇明县| 友谊县| 灵丘县| 深水埗区| 察隅县| 沈丘县| 双峰县| 友谊县| 银川市| 庆云县| 文水县| 怀化市| 宜君县| 克拉玛依市| 赣榆县| 麻江县| 云和县| 商河县| 丁青县| 黎城县| 海宁市| 德兴市| 珠海市| 长顺县| 东源县| 大埔县|