Java从键盘接收单个字符并转化为Unicode

来源:互联网 发布:sqlserver is null 编辑:程序博客网 时间:2024/05/01 14:59

Unicode是Java采用的编码方式,那么单个的字符如何转化为Unicode呢?

首先我们要清楚Unicode的编码原理。

Unicode是4位16进制编码,以/u开头,如'a'的编码是/u0061。现在我们从键盘接收到的字符是char类型,2个字节,即16位2进制。要将16位2进制转化为4位16进制,我可以将16位二进制分割为高8位与低8位进行处理,代码如下:

import java.util.*;public class TransToUnicode {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        String s = scanner.next();        char c = s.charAt(0);        StringBuffer sb = new StringBuffer();        sb.append("\\u");//添加/u标识符        int high = c >>> 8;//取高8位,无符号右移,无论正负,高位补0。        String s2 = Integer.toHexString(high);//将高8位转化为16进制        if(s2.length() == 1){//如果高8位转化为16进制只有1位则补0            sb.append("0");        }        sb.append(s2);        int low = c & (0xFF);//取低8位        s2 = Integer.toHexString(low);        if(s2.length() == 1){            sb.append(0);        }        sb.append(s2);        System.out.println(sb.toString());    }}

1 0
原创粉丝点击