字节:存储的单位
字符:文字符号(如字母、数字、标点符号),由多个字节组成。
一个字节可区别256(2^8)个位,一个中文字符占三个字节。
字符编码:为字符集中的每一个字符规定一串对应二进制数。比如,在ASCII码中,大写的字母A是01000001
每个字节是8比特。
其中第1位用于表示正负, 第一位0表示是正数,第一位是1表示负数。
0000 0000 到 0111 1111表示正数,0到127。
1000 0000 到 1111 1111表示负数,0到-128。其中,1000 0000定义为-128。
常见的字符编码方式有:ASCII、 Unicode、UTF-8、GBK(简、繁体字融于一库)、GB2312(简体中文字符集)、Big5(繁体中文字符集)等。
总结:a,字符,占1个字节,字符编码是01100001。
编码
字符转为字节
String类的方法
public byte[] getBytes():使用平台默认的编码方式utf-8对字符串编码
public byte[] getBytes(String charsetName):使用指定的编码方式对字符串编码
解码
字节转为字符
String类的构造方法
public String(byte[] bytes):使用平台默认的编码方式utf-8解码为字符串
public String(byte[] bytes, String charsetName):使用指定的编码方式解码为字符串
String s = "ab,你好!";
//编码
byte[] bytes = s.getBytes();
System.out.println(Arrays.toString(bytes));//[97, 98, 44, -28, -67, -96, -27, -91, -67, -17, -68, -127]
//解码
String s1 = new String(bytes);
System.out.println(s1);//ab,你好!