String str = "测试";
Charset charsetGB2312 = Charset.forName("GB2312");
byte[] bytesGB = str.getBytes(charsetGB2312);//gbk编码一个汉字占2个字节
System.out.println(bytesGB.length);//打印结果4
Charset charsetUTF8 = Charset.forName("UTF-8");
byte[] bytesUTF8 = str.getBytes(charsetUTF8);//utf8编码一个汉字占3个字节
System.out.println(bytesUTF8.length);//打印结果6
String result = new String(bytesGB,charsetGB2312);//GB2312 的编码的字节数据要用 GB2312 编码来读取,否则乱码
System.out.println(result);
String result2 = new String(bytesUTF8,charsetUTF8);//UTF-8 的编码的字节数据要用 UTF-8 编码来读取,否则乱码
System.out.println(result2);
String result3 = new String(bytesUTF8,charsetGB2312);//UTF-8 的编码的字节数据用 GB2312 编码来读取, 乱码
System.out.println(result3);
输出结果
4
6
测试
测试
娴�璇�