在String类中,有这么一个方法:
public byte[] getBytes():该方法将字符串按照默认编码格式转为byte数组,对于简体中文win系统来说,默认编码格式就是GBK。package com.anjoyo.day01;
import java.io.UnsupportedEncodingException;
public class StringTest {
public static void main(String[] args) {
String strSrc = "这是string";
System.out.println(strSrc.getBytes().length);
try {
System.out.println(strSrc.getBytes("GBK").length);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
两者输出结果一样:10。
从中我们还可以看出,对于第二种getBytes的重载方法,我们可以指定编码格式,从而得到该编码格式的字节形式。package com.anjoyo.day01;
import java.io.UnsupportedEncodingException;
public class StringTest {
public static void main(String[] args) {
String strSrc = "这是string";
System.out.println(strSrc.getBytes().length);// 10
try {
System.out.println(strSrc.getBytes("UTF-8").length);// 12
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
可以看出:对于GBK编码,汉字占2个字节,对于UTF-8来说,汉字占3个字节。这和我们的常识是一致的。