随便发发,java gb2312与中文字符转换,以及中文和Unicode的转换

/**
     * 中文转Unicode
     * @param gbString
     * @return
     */
   public static String UnicodeEncoding(String gbString) {   //gbString = "测试"  
          char[] utfBytes = gbString.toCharArray();   //utfBytes = [测, 试]  
          String unicodeBytes = "";     
          for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {     
              String hexB = Integer.toHexString(utfBytes[byteIndex]);   //转换为16进制整型字符串  
                if (hexB.length() <= 2) {     
                    hexB = "00" + hexB;     
               }     
                unicodeBytes = unicodeBytes + "\\u" + hexB;     
          }        
          return unicodeBytes;     
    }
   
   /**
    * Unicode转中文   
    */
   public static String decodeUnicode( String dataStr) {     
      int start = 0;     
      int end = 0;     
      StringBuffer buffer = new StringBuffer();     
      while (start > -1) {     
          end = dataStr.indexOf("\\u", start + 2);     
          String charStr = "";     
          if (end == -1) {     
              charStr = dataStr.substring(start + 2, dataStr.length());     
          } else {     
              charStr = dataStr.substring(start + 2, end);     
          }     
          char letter = (char) Integer.parseInt(charStr, 16); // 16进制parse整形字符串。     
          buffer.append(new Character(letter).toString());     
          start = end;     
      }     
      return buffer.toString();     

   } 


/**
    * gb2312编码
    */
   public static String gb2312decode( String string) throws UnsupportedEncodingException{
       byte[] bytes = new byte[string.length() / 2];
       for(int i = 0; i < bytes.length; i ++){
           byte high = Byte.parseByte(string.substring(i * 2, i * 2 + 1), 16);
           byte low = Byte.parseByte(string.substring(i * 2 + 1, i * 2 + 2), 16);
           bytes[i] = (byte) (high << 4 | low);
       }
       return new String(bytes, "gb2312");   
   }
   
   /**
    * gb2312解码
    */
   public static String gb2312eecode(String string) throws UnsupportedEncodingException{   
       StringBuffer gbkStr = new StringBuffer();  
       byte[] gbkDecode = string.getBytes("gb2312");  
       for (byte b : gbkDecode) {  
           gbkStr.append(Integer.toHexString(b & 0xFF));  
       }
       return gbkStr.toString();
   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值