每一个编码表都有自己一定的编码规则乱码:造成的原因是在写的时候和读取的时候使用的码表不相同。解决乱码就要保证读取写码表一致。编码的过程,就是把字符数据根据码表查到对应的编码值,然后把这些编码值变成字节数据,这个过程就称为编码。解码的过程,就是把字节数据根据对应的编码表,查到对应的字符数据,最后得到字符数据。
import java.io.UnsupportedEncodingException;
public class IoDemo{
public static void main(String[] args) throws UnsupportedEncodingException {
methord1();
methord2();
}
private static void methord2() throws UnsupportedEncodingException {
// TODO Auto-generated method stub
byte[] b={-28,-67,-96-27,-91,-67};
//解码
String s=new String(b,"gbk");
byte[] b2=s.getBytes("gbk");
String s2=new String(b2,"utf-8");
System.out.println(s2);
}
private static void methord1() throws UnsupportedEncodingException {
// TODO Auto-generated method stub
String s="李帅";
byte[] b=s.getBytes("utf-8");
for (byte c : b) {
int a=c&0b1111_1111;
System.out.println(Integer.toBinaryString(c));
}
}
}
次代码完成了解码,编码的过程,如果出现乱码现象,就使用当前编码表进行编码,然后再使用想要使用的编码表进行解码。