冰浪

          哥已不再年輕 - 堅定夢想,畢生追求!
          posts - 85, comments - 90, trackbacks - 0, articles - 3
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          J2ME對html的unicode實體編碼的轉換

          Posted on 2009-07-10 17:57 冰浪 閱讀(1005) 評論(0)  編輯  收藏 所屬分類: J2ME

          在開發j2me瀏覽器時,對于html的unicode實體編碼,我們需要將轉換才能正常顯示。如下面這樣一段代碼:
          <a >返回移动梦网</a><br />

          方法如下:

              private static String decodeUnicode(final String dataStr) {
                  
          int start = 0;
                  
          int end = 0;
                  
          final StringBuffer buffer = new StringBuffer();
                  
          while (start > -1{
                      
          int system = 10;//進制
                      if(start==0){
                          
          int t = dataStr.indexOf("&#");
                          
          if(start!=t)start = t;
                      }

                      end 
          = dataStr.indexOf(";", start + 2);
                      String charStr 
          = "";
                      
          if (end != -1{
                          charStr 
          = dataStr.substring(start + 2, end);
                          
                          
          //判斷進制
                          char s = charStr.charAt(0);
                          
          if(s=='x' || s=='X'){
                              system 
          = 16;
                              charStr 
          = charStr.substring(1);
                          }

                      }

                      
          //轉換
                      try{
                          
          char letter = (char) Integer.parseInt(charStr,system);
                          buffer.append(
          new Character(letter).toString());
                      }
          catch(NumberFormatException e){
                          e.printStackTrace();
                      }

                      
                      
          //處理當前unicode字符到下一個unicode字符之間的非unicode字符
                      start = dataStr.indexOf("&#",end);
                      
          if(start-end>1){
                          buffer.append(dataStr.substring(end
          +1, start));
                      }

                      
                      
          //處理最后面的非unicode字符
                      if(start==-1){
                          
          int length = dataStr.length();
                          
          if(end+1!=length){
                              buffer.append(dataStr.substring(end
          +1,length));
                          }

                      }

                  }

                  
          return buffer.toString();
              }
           
              



           

          主站蜘蛛池模板: 长兴县| 时尚| 奉化市| 崇州市| 颍上县| 五台县| 紫金县| 屯留县| 贵定县| 寿阳县| 辉南县| 比如县| 外汇| 扎兰屯市| 金山区| 客服| 鄂托克旗| 根河市| 乐都县| 唐海县| 正定县| 安塞县| 桂阳县| 金湖县| 台安县| 庆城县| 凤庆县| 清水河县| 永靖县| 海阳市| 师宗县| 安乡县| 页游| 平邑县| 疏附县| 灵石县| 肥乡县| 大石桥市| 荣成市| 巴中市| 丰镇市|