将字符转换为unicode码

将字符转换为unicode码:

  

 /**
   * unicode转义字符
   * @param ch
   * @param out
   */
  public static void unicodeEscape(int ch, CharArr out) {
    out.write('\\');
    out.write('u');
    //字符ch向右移动12位之后,取最后一位
    out.write(HEX_CHARS[ch>>>12]);
    //字符ch向右移动8位之后,取最后一位
    out.write(HEX_CHARS[(ch>>>8)&0xf]);
    //字符ch向右移动4位之后,取最后一位
    out.write(HEX_CHARS[(ch>>>4)&0xf]);
    //取字符ch十六进制的最后一位 
    out.write(HEX_CHARS[ch&0xf]);
  }

说明:

  unicode码用16进制表示,一般是4位,如小写字母'a',表示为0x0041.这里我们对字符的十进制数字采用16位运算,生成unicode字码.

代码中采用位运算符号&,0xf为16进制数, 0xf & 65 = 0xf & 0x41 = 1 .也就是取16进制数最低一位.可以采用这种方法和移位运算分别取到该字符unicode编码的四位16进制数字.

 

不当之处,敬请指正! 谢谢!

 

转载于:https://www.cnblogs.com/a198720/p/4279086.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值