中文与unicode互转

 
  1. package conversion;
  2. public class Conversion {
  3.     
  4.     /**
  5.      * 中文转unicode
  6.      * @param str
  7.      * @return 反回unicode编码
  8.      */
  9.     public String  chinaToUnicode(String str)
  10.     {
  11.         String result = null;
  12.         for (int i = 0; i < str.length(); i++)
  13.         {
  14.             int chr1 = (char) str.charAt(i);
  15.             result  += "//u" + Integer.toHexString(chr1);            
  16.         }
  17.         return result;
  18.     }
  19.     /**
  20.      * unicode转中文
  21.      * @param  str
  22.      * @return 中文
  23.      */
  24.      public void unicodeToChinese(String str)
  25.      {         
  26.          
  27.          for(char c : str.toCharArray())             
  28.               
  29.          System.out.print(c);    
  30.          
  31.      }
  32.      
  33.      public static void main(String args[])
  34.      {       
  35.         //unicode转中文
  36.          String str = "/u767b/u5f55/u793e/u533a";
  37.          Conversion  con = new Conversion();
  38.          
  39.          con.unicodeToChinese(str);            
  40.          //for(char c : str.toCharArray())         
  41.          //System.out.print(c); 
  42.                   
  43.     }
  44.      
  45. package conversion;
  46. /*从键盘上读取字节,输出字节,遇到Byte时退出
  47.  .构造方法:
  48.  .String(byt[] bytes,int offset,int length)
  49.  .equalsIgnoreCase方法,不区分大小写
  50.  .indexOf(int ch)方法,用于返回字符首次出现的位置
  51.  */
  52. public class ReadLine {
  53.     public static void main(String[] args)
  54.     {
  55.         byte[] buf = new byte[1024];     //字节当中输入字符最大为1024个字节
  56.         String strInfo = null;                  //字符串对象
  57.         int pos = 0;                                 //显示初始化未知
  58.         int ch = 0;                                   //每次读取的字节
  59.         Conversion conv = new Conversion();    
  60.         System.out.println("请输入汉字:"); 
  61.         while (true)                                   //不停的读取键盘输入
  62.         {
  63.             try
  64.             {
  65.                 ch = System.in.read();         //从键盘上读取字节
  66.             } catch (Exception e)
  67.             {
  68.                 e.printStackTrace();
  69.             }
  70.             switch (ch)
  71.             {
  72.                 case ''/r'' :                                     //回车时不处理
  73.                     break;
  74.                 case ''/n'' :                                     //换行                   
  75.                 
  76.                 strInfo = new String(buf, 0, pos);                 //转换字节为字符从buff的0个开始到pos个转换
  77. if (strInfo.equalsIgnoreCase("bye"))
  78.                 {
  79.                     return;                                     //返回主函数
  80.                 } else if(strInfo == null)
  81.                 {                                             
  82.                     pos = 0;                                     //清零
  83.                     break;                                         //跳出来
  84.                 }
  85.                 else
  86.                 {
  87.                                                                         //输出unicode编码
  88.                     //conv.unicodeToChinese(strInfo);
  89.                     System.out.println(conv.chinaToUnicode(strInfo).substring(4));
  90.                     pos = 0;                                      //清零
  91.                     break;                                          //跳出来
  92.                 }
  93.                 default :
  94.                     buf[pos++] = (byte) ch;             //CH附值给buf的pos
  95.             }
  96.         }
  97.     }
  98. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值