A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

百度了才知道原来这个叫BOM标识头,除了FEFF外还有FFFE。
可参考:http://www.jb51.net/article/15558.htm#content_2_3
不过我发现其实java的unicode编码就相当于utf-16BE编码,
但unicode编码会多2个字节的BOM标识头,,,我们可以采用utf-16BE编码来去掉这个标识头
如下图:


代码:

  1. byte[] b1="王者".getBytes("utf-16LE");
  2.                 byte[] b2="王者".getBytes("utf-16BE");
  3.                 byte[] b3="王者".getBytes("utf-16");
  4.                 byte[] b4="王者".getBytes("unicode");
  5.                 for(byte b:b1){
  6.                         System.out.print(Integer.toHexString(b&255).toUpperCase()+",");
  7.                 }
  8.                 System.out.println();
  9.                 for(byte b:b2){
  10.                         System.out.print(Integer.toHexString(b&255).toUpperCase()+",");
  11.                 }
  12.                 System.out.println();
  13.                 for(byte b:b3){
  14.                         System.out.print(Integer.toHexString(b&255).toUpperCase()+",");
  15.                 }
  16.                 System.out.println();
  17.                 for(byte b:b4){
  18.                         System.out.print(Integer.toHexString(b&255).toUpperCase()+",");
  19.                 }

复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马