黑马程序员技术交流社区

标题: 为何unicode编码前面会多2个字节的FEFF标识? [打印本页]

作者: as604049322    时间: 2015-5-26 17:37
标题: 为何unicode编码前面会多2个字节的FEFF标识?
百度了才知道原来这个叫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.                 }

复制代码






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2