java 字符编码 utf16 utf16be utf16le unicode 探究相关小函数。
2009-01-11 17:13
316 查看
/**
*
*
* UTF-16 charset 使用 16 位量,因此对字节顺序敏感。 流的字节顺序可以由 Unicode 字符 '/uFEFF'
* 所表示的初始字节顺序标记 来指示。
*
* UTF-16BE 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序
* UTF-16LE 16 位 UCS
* 转换格式,Little-endian(最高地址存放低位字节)字节顺序
*
* java中 如果没有feff的标志,则默认为 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();
}
*
*
* UTF-16 charset 使用 16 位量,因此对字节顺序敏感。 流的字节顺序可以由 Unicode 字符 '/uFEFF'
* 所表示的初始字节顺序标记 来指示。
*
* UTF-16BE 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序
* UTF-16LE 16 位 UCS
* 转换格式,Little-endian(最高地址存放低位字节)字节顺序
*
* java中 如果没有feff的标志,则默认为 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();
}
相关文章推荐
- Java中时间相关函数Date、Calendar、SimpleDateFormat
- Java中map相关的函数
- Javasrcipt时间相关函数
- Java中String字符编码(CharSet)转换的相关问题
- 黑马程序员——3,JAVA基础(函数,数组相关)
- Java中的字符编码与解码 utf8 utf16 gbk
- Java String类相关函数说明
- Java Thread 相关的函数
- 礼拜三log~关于c:test标签 & js鼠标变身! & java字符串相关函数
- 单向链表的Java实现,以及相关函数。
- java里日期相关的函数例子
- Java的HTML的URL字符编码转换为Java字符串的函数
- 正则表达式学习与应用及JAVA中相关函数
- 关于Java 字符串相关函数小记
- 双向链表的Java实现,以及相关函数的实现
- java关于正则相关的函数的应用--compile(),match(),find(),group(),
- Java中的字符编码相关问题
- java 日期相关函数
- java_时间戳与Date_相互转化相关函数
- java biginterger的相关函数作用