java String getBytes

来源:互联网 发布:淘宝哪里进货 编辑:程序博客网 时间:2024/05/19 06:46

大家都知道java的char是双字节字符,而String提供了getBytes的函数,这个函数得到的bytes数组是什么样的形式存在呢?是双字节的字符顺序存在数组中吗?

做个试验

 

String ts1 = "112";
  byte[] ts2 = null;
   ts2 = ts1.getBytes();
这个输出的是112的ascii 49 49 50
注意到这个有个重载的方法加了个参数encoding,换个试试

String tests1 = "112";
  byte[] tests2 = null;
  try {
   ts2 = ts1.getBytes("UTF-8”);
  } catch (UnsupportedEncodingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

输出还是 494950

String tests1 = "112";
  byte[] tests2 = null;
  try {
   ts2 = ts1.getBytes("UTF-16LE”);
  } catch (UnsupportedEncodingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

输出变为了 490 490 500

在看一下sdk,--!写的太清楚了。。byte[]getBytes()
          使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 byte[]getBytes(Charset charset)
          使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。

系统的默认的charset是GBK,而Utf-8使用的是变字节编码,Utf-16用的二字节定长编码。

 

原创粉丝点击