/**
* * * UTF-16 charset 使用 16 位量,因此對(duì)字節(jié)順序敏感。 流的字節(jié)順序可以由 Unicode 字符 ’\uFEFF’ * 所表示的初始字節(jié)順序標(biāo)記 來(lái)指示。 * * UTF-16BE 16 位 UCS 轉(zhuǎn)換格式,Big Endian(最低地址存放高位字節(jié))字節(jié)順序 * UTF-16LE 16 位 UCS * 轉(zhuǎn)換格式,Little-endian(最高地址存放低位字節(jié))字節(jié)順序 * * java中 如果沒(méi)有feff的標(biāo)志,則默認(rèn)為 feff * * @throws UnsupportedEncodingException */ void unicodeShow() throws UnsupportedEncodingException { String shz; byte[] hz; hz = new byte[4]; hz[0] = (byte) 0xfe; hz[1] = (byte) 0xff; hz[2] = 0x55; hz[3] = 0x4a; shz = new String(hz, "utf-16"); System.out.println(shz); hz = new byte[2]; hz[0] = 0x55; hz[1] = 0x4a; shz = new String(hz, "utf-16"); System.out.println(shz); hz = new byte[2]; hz[0] = 0x55; hz[1] = 0x4a; shz = new String(hz, "utf-16be"); System.out.println(shz); hz = new byte[4]; hz[0] = (byte) 0xff; hz[1] = (byte) 0xfe; hz[2] = 0x4a; hz[3] = 0x55; shz = new String(hz, "utf-16"); System.out.println(shz); hz = new byte[2]; hz[0] = 0x4a; hz[1] = 0x55; shz = new String(hz, "utf-16le"); System.out.println(shz); System.out.println("啊 UNICODE:U+554A"); System.out.print(Integer.toHexString("啊".charAt(0) >> 8 & 0xff)); System.out.print(" "); System.out.print(Integer.toHexString("啊".charAt(0) & 0xff)); System.out.println(); for (byte i : "啊".getBytes("utf-16")) System.out.print(Integer.toHexString(i & 0xff) + " "); System.out.println(); for (byte i : "啊".getBytes("utf-16be")) System.out.print(Integer.toHexString(i & 0xff) + " "); System.out.println(); for (byte i : "啊".getBytes("utf-16le")) System.out.print(Integer.toHexString(i & 0xff) + " "); System.out.println(); } |
|
來(lái)自: 昵稱1376550 > 《我的圖書(shū)館》