编码和解码
编码和解码
字符按照某种规则,转成二进制,进行存储到计算机中,称为编码。
按照同样的规则,将存储在计算机中的二进制数解析显示出来,称为解码。
编码和解码必须一致,否则会导致乱码
常见编码表:
ASCII码,GBK码,Unicode码(unicode码表中的数字不是直接以二进制的形式存储到计算机的,会通过UTF-7,UTF-7.5, UTF-8, UTF-16以及UTF-32进行编码,再存储到计算机,其中最为常见的就是UTF-8). UTF-8编码后一个中文以三个字节的形式存储。
重点:
- windows默认使用码表为GBK,一个字符两个字节
- idea和以后工作默认使用Unicode的UTF-8编解码格式,一个中文三字节。
编码
- byte[] getBytes(): 使用平台的默认字符集将该String编码为一系列字节,将结果存储到新的字节数组中。
- byte[] getBytes(String charsetName): 使用指定的字符集将该String编码为一系列字节,将结果存储到新的字节数组中
解码
- String(byte[] bytes): 通过使用平台的默认字符集解码指定的字节数组来构造新的String
- String(byte[] bytes, String charsetName): 通过指定的字符集解码指定的字节数组来构造新的String