百度了才知道原来这个叫BOM标识头,除了FEFF外还有FFFE。
可参考:http://www.jb51.net/article/15558.htm#content_2_3
不过我发现其实java的unicode编码就相当于utf-16BE编码,
但unicode编码会多2个字节的BOM标识头,,,我们可以采用utf-16BE编码来去掉这个标识头
如下图:
代码:
- byte[] b1="王者".getBytes("utf-16LE");
- byte[] b2="王者".getBytes("utf-16BE");
- byte[] b3="王者".getBytes("utf-16");
- byte[] b4="王者".getBytes("unicode");
- for(byte b:b1){
- System.out.print(Integer.toHexString(b&255).toUpperCase()+",");
- }
- System.out.println();
- for(byte b:b2){
- System.out.print(Integer.toHexString(b&255).toUpperCase()+",");
- }
- System.out.println();
- for(byte b:b3){
- System.out.print(Integer.toHexString(b&255).toUpperCase()+",");
- }
- System.out.println();
- for(byte b:b4){
- System.out.print(Integer.toHexString(b&255).toUpperCase()+",");
- }
复制代码
|
|