public class Exam{
public static void main(String args[]){
byte d[]="java你好".getBytes();
String hao=new String(d,6,2);
System.out.println(hao);
String javani=new String(d,0,8);
System.out.println(javani);
//输出
好
java你
汉字算两个字节
在Java中,默认的编码方式为utf-8,汉字占三个字节,可以试一试在定义的时候改变为gbk模式,在gbk模式中汉字占两个字节
java的默认编码是UTF-8,但是看你的输出,应该是把你的默认编码设成了GBK,可通过添加虚拟机参数-Dfile.encoding=GBK设置编码方式,看看你是不是加个这个参数项。
汉子在GBK编码中占两个字节,在UTF-8编码中占三个字节。
另外new String()在解码时可以传入指定字符集,getBytes()在编码时也可以传入你指定的字符集。
byte d[]="java你好".getBytes("GBK");
String hao=new String(d,6,2,"GBK");
System.out.println(hao);
String javani=new String(d,0,8,"GBK");
System.out.println(javani);