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
测试
测试
娴�璇�
字符编码转换与字符串解码示例:GBKvsUTF-8
本文通过实例展示了如何使用Java将字符串进行GBK和UTF-8编码,并指出不同编码在解码时的注意事项,以防止出现乱码问题。
568

被折叠的 条评论
为什么被折叠?



