java基础-io
2021-02-18 18:18
标签:tst 字节 java div 编码 main 默认 stack utf-16 1.编码 2.待续 java基础-io 标签:tst 字节 java div 编码 main 默认 stack utf-16 原文地址:https://www.cnblogs.com/freeht/p/12689660.htmlpublic class EncodeDemo {
public static void main(String[] args) {
String s = "聪123";
byte[] b1 = s.getBytes(); //转换成字节序列用的是项目默认的编码
for (byte b : b1) {
//把字节转换成以16进制的方式显示
System.out.print(Integer.toHexString(b & 0xFF) + " ");
}
System.out.println();
try {
//gbk编码中文占用2个字节,英文占用1个字节
byte[] b2 = s.getBytes("gbk");
for (byte b : b2) {
System.out.print(Integer.toHexString(b & 0xff) + " ");
}
System.out.println();
//utf-8编码中文占用3个字节,英文占用1个字节
byte[] b3 = s.getBytes("utf-8");
for (byte b : b3) {
System.out.print(Integer.toHexString(b & 0xff) + " ");
}
System.out.println();
//java是双字节编码 utf-16be编码
//utf-16中文占用三个字节,英文占用2个字节
byte[] b4 = s.getBytes("utf-16be");
for (byte b : b4) {
System.out.print(Integer.toHexString(b & 0xff) + " ");
}
System.out.println();
/**
* 当你的字节序列是某种编码时,这个时候想要把字节序列变成字符串,也需要这种编码方式,否则会出现乱码
*/
String s1 = new String(b4);
System.out.println(s1);
String s2 = new String(b4, "utf-16be");
System.out.println(s2);
/**
* 文本文件就是字节序列,可以是任意的字节序列,如果我们在中文机器上创建文本文件,那么这个机器只认识ansi编码
* 联通,联这是一种巧合,他们正好符合了utf-8编码规则
*/
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
下一篇:JavaEE路径