编码和解码:无论是解码还是编码都是针对码表来讲的。
编码:将能看懂得字符变为我们看不懂的码值。
字符串---》字节数组
String类的getBytes() 方法进行编码,将字符串,转为对映的二进制,并且这个方法可以指定编码表。如果没有指定码表,该方法会使用操作系统默认码表。
注意:*的Windows系统上默认的编码一般为GBK。在Java程序中可以使用System.getProperty("file.encoding")方式得到当前的默认编码。
解码:将我们看不懂的码值通过对应的码表变成我们能够看懂的字符。
字节数组---》字符串
String类的构造函数完成。
String(byte[] bytes) 使用系统默认码表
String(byte[], charset)指定码表
注意:我们使用什么字符集(码表)进行编码,就应该使用什么字符集进行解码,否则很有可能出现乱码(兼容字符集不会)。
常用的:GBK UTF-8 ios8859-1 unicod(码表的规范):UTF-8 ,utf-16
注意点:编码的时候可以指定编码方式(使用平台的默认码表为(gbk)),当我们解码的时候,解码的编码方式要和编码的方式要统一,否则容易出现乱码。使用流的时候输入流使用的编码方式与输出流使用的编码方式必须相一致。