隨筆 - 3  文章 - 8  trackbacks - 0
          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(1)

          隨筆檔案(8)

          文章檔案(1)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          有時候需要輸出漢字的Unicode值,而且不是在property文件中,這樣就沒有現成的方法,其實,
          System.out.println((int)'我');
          輸出的數字就是10進制的unicode值,轉為16進制即可。

          自己寫的轉換函數:

              /**
               * 返回16進制字符串
               * 
          @param k 待轉換的10進制整數
               * 
          @return 16進制字符串
               * 
          @param headOrNo 是否加"0x"開頭,是則加,否則不加
               
          */
              
          public static String toHex(int k, boolean headOrNo) {
                  StringBuffer sb 
          = new StringBuffer("");
                  String flag 
          = "0x";
                  
          if (k < 0) {
                      flag 
          = "-0x";
                      k 
          *= -1;
                  }
                  
          int t;
                 
                  
          do {
                      t 
          = k % 16;
                      
          if (t > 9) {
                          
          char c = 'A';
                          
          for (int i=0; i<t-10; i++,c++);
                          sb.insert(
          0,c);
                      } 
          else {
                          sb.insert(
          0,t);
                      }
                      k 
          /= 16;
                  } 
          while(k > 0);
                  
          if (headOrNo) {
                      sb.insert(
          0,flag);
                  } 
          else {
                      
          return sb.toString();
                  }
                  
          return sb.toString();
              }

              /**
               * 返回字符的unicode碼字符串
               * 
          @param c 待轉換的字符
               * 
          @return 字符的unicode碼:/uXXXX
               
          */
              
          public static String char2Unicode(char c) {
                  
          return "/u" + toHex(c, false);
              }
             
              /**
               * 返回字符串的unicode碼字符串
               * 
          @param s 待轉換的字符串
               * 
          @return 字符串的unicode碼:/uXXXX/uXXXX
               
          */
              
          public static String getUnicode2(String s) {
                  StringBuffer sb 
          = new StringBuffer("");
                  
          char c[] = s.toCharArray();
                  
          for (int i=0; i<c.length; i++) {
                      sb.append(char2Unicode(c[i]));
                  }
                  
          return sb.toString();
              }


          Unicode聯盟的網站有一個到碼表的鏈接,列出了16位碼值。英語,法語,德語,葡萄牙語和西班牙語字符都在Basic Latin區,日語字符在Hiragana區,俄語字符在Cyrillic區,漢語字符在CJK Unified Ideographs 區。
          posted on 2007-12-05 11:50 cccp21 閱讀(987) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 天祝| 平陆县| 黄冈市| 江城| 肇东市| 肃宁县| 红安县| 新泰市| 四子王旗| 开江县| 博兴县| 黄大仙区| 呼玛县| 通化县| 罗定市| 习水县| 梓潼县| 临泽县| 绥德县| 通道| 甘洛县| 黔西县| 江川县| 古田县| 东港市| 绵阳市| 慈利县| 奈曼旗| 湟源县| 保靖县| 文安县| 大新县| 无极县| 雷州市| 花莲县| 徐州市| 曲靖市| 阜康市| 休宁县| 高青县| 瓮安县|