jialisoftw

          Java如何把javascript格式的hex轉換成Java格式的hex

          首先由于正常的ASCII碼表示的字符有限,于是產生了Unicode, Unicode使用的是16進制的格式來表示一個字符. 
          在javascript里Unicode的表示格式有2種: 1. '%uxxxx' 2. '\uxxxx'. 
          在Java里Unicode格式就一種'\u'. 
          Javascript函數escape轉義的字符使用的就是'%u',于是這個hex到了java里就認不出來了,就會出現亂碼. 
           
          Solution: 
               1. 不管是'%u'或者'\u',他們都是hex在某種語言里的表示格式,真正的hex number還是在后面的數字. 所以只要把數字取出來加以處理就好了. 
               2. 數字取出來以后是16進制的,char和Integer 之間是可以隱式轉換的,我們現在要做的就是把16進制的數字轉換成10進制的Integer,然后轉換成char,對應的字符就出來了. 
          /** 
                  * Decode given string. 
                  * Java just know the hex form '\u2122', not know how to translate other form hex. 
                  * If string include the javascript hex, like '%u2122'. This method will get the real hex number and cast it to right format char. 
                  * @param input_str the string to decode 
                  * @return an decode string 
                  */ 
                  public static String decodeFromHex(String input_str) { 
                        Pattern p = Pattern. compile( "%u([a-zA-Z0-9]{4})"); 
                        Matcher m = p.matcher(input_str); 
                        StringBuffer sb = new StringBuffer(); 
                         while (m.find()) { 
                          m.appendReplacement(sb, 
                              String. valueOf(( char) Integer. parseInt(m.group(1), 16))); 
                        } 
                        m.appendTail(sb); 
                         return sb.toString(); 
              }
          原文參考自站長網

          posted on 2013-01-12 17:20 飛豬一號 閱讀(315) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2013年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統計

          常用鏈接

          留言簿

          隨筆檔案

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鱼台县| 雷波县| 石狮市| 甘谷县| 凤庆县| 如东县| 嘉峪关市| 禹州市| 贵港市| 两当县| 扬中市| 成武县| 许昌县| 海晏县| 宾川县| 南郑县| 精河县| 张北县| 五大连池市| 焦作市| 望江县| 桦南县| 张家港市| 松江区| 阿拉尔市| 大足县| 宁安市| 伊宁市| 景德镇市| 高碑店市| 岚皋县| 准格尔旗| 宜君县| 凤阳县| 株洲县| 额敏县| 无锡市| 崇义县| 余庆县| 德格县| 青川县|