`
bjxagu
  • 浏览: 162231 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

中文与unicode互转

阅读更多

package conversion;
public class Conversion {
   
    /**
     * 中文转unicode
     * @param str
     * @return 反回unicode编码
     */
    public String  chinaToUnicode(String str)
    {
        String result = null;
        for (int i = 0; i < str.length(); i++)
        {
            int chr1 = (char) str.charAt(i);
            result  += "\\u" + Integer.toHexString(chr1);           
        }
        return result;
    }

    /**
     * unicode转中文
     * @param  str
     * @return 中文
     */
     public void unicodeToChinese(String str)
     {         
         
         for(char c : str.toCharArray())             
             
         System.out.print(c);   
         
     }
     
     public static void main(String args[])
     {      
        //unicode转中文
         String str = "\u767b\u5f55\u793e\u533a";
         Conversion  con = new Conversion();
         
         con.unicodeToChinese(str);           
         //for(char c : str.toCharArray())         
         //System.out.print(c);
                 
    }
     
}

package conversion;

/*从键盘上读取字节,输出字节,遇到Byte时退出
 .构造方法:
 .String(byt[] bytes,int offset,int length)
 .equalsIgnoreCase方法,不区分大小写
 .indexOf(int ch)方法,用于返回字符首次出现的位置
 */
public class ReadLine {
    public static void main(String[] args)
    {
        byte[] buf = new byte[1024];     //字节当中输入字符最大为1024个字节
        String strInfo = null;                  //字符串对象
        int pos = 0;                                 //显示初始化未知
        int ch = 0;                                   //每次读取的字节
        Conversion conv = new Conversion();   
        System.out.println("请输入汉字:");
        while (true)                                   //不停的读取键盘输入
        {
            try
            {
                ch = System.in.read();         //从键盘上读取字节
            } catch (Exception e)
            {
                e.printStackTrace();
            }
            switch (ch)
            {
                case ''\r'' :                                     //回车时不处理
                    break;
                case ''\n'' :                                     //换行                  
               
                strInfo = new String(buf, 0, pos);                 //转换字节为字符从buff的0个开始到pos个转换
if (strInfo.equalsIgnoreCase("bye"))
                {
                    return;                                     //返回主函数
                } else if(strInfo == null)
                {                                             
                    pos = 0;                                     //清零
                    break;                                         //跳出来
                }
                else
                {
                                                                        //输出unicode编码
                    //conv.unicodeToChinese(strInfo);
                    System.out.println(conv.chinaToUnicode(strInfo).substring(4));
                    pos = 0;                                      //清零
                    break;                                          //跳出来
                }
                default :
                    buf[pos++] = (byte) ch;             //CH附值给buf的pos
            }
        }
    }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics