String 与 byte[]之间的转换
public class StringTest1 {
/*
String 与 byte[]之间的转换
编码 String --> byte[]:调用String的getBytes()
解码 byte[] --> String:调用String的构造方法
说明:解码时,要求解码使用的字符集必须与编码使用的字符集一致,否则会出现乱码
*/
@Test
public void test() throws UnsupportedEncodingException{
String s1 = "abc123中国";
byte[] bytes = s1.getBytes();//使用默认的字符集进行转换
System.out.println(Arrays.toString(bytes));
byte[] gbks = s1.getBytes("gbk");//使用gbk字符集进行编码
System.out.println(Arrays.toString(gbks));
String s2 = new String(bytes);//使用默认的字符集进行解码
System.out.println(s2);
String s3 = new String(gbks);
System.out.println(s3);//出现乱码,原因:编码集和解码集不一致
String s4 = new String(gbks, "gbk");
System.out.println(s4);//没有出现乱码,原因:编码集和解码集一致
}
}