String 与 byte[]之间的转换

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);//没有出现乱码,原因:编码集和解码集一致
  }
}
上一篇:JavaSE之变量,常量,作用域


下一篇:Java之Scanner扫描流