package com.neil.note;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
public class Practice {
public static void main(String[] args) {
try {
String s="小白";
//浏览器请求参数 转化为字符集数组
byte[] utf_8bytes=s.getBytes("utf-8");//
//字符数组转为二进制字符集 传到tomcat服务器 字符集数组
System.out.println("utf8"小白"的字符集数组"+Arrays.toString(utf_8bytes));// [-27, -80, -113, -25, -103, -67]
//tomcat 再使用iso8859-1把utf8的字符集解码(这里应该是先将字符集编码为ISO8859-1,再解出)
//因为和utf8 解出的标准不同,所以就乱码啦。
// 每一个终端的本质都是将二进制流 先编码 再解码 才能变成认类理解的文字,图像,视频
String tomcatdisplay=new String(utf_8bytes, "ISO-8859-1");//å°ç½
byte iso_bytes[] = tomcatdisplay.getBytes("ISO-8859-1");
System.out.println("iso8859-1"乱码"的字符数集组"+Arrays.toString(iso_bytes));//[-27, -80, -113, -25, -103, -67]
String normalStr = new String(iso_bytes,"utf-8");
System.out.println(normalStr);//小白
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
请看我的代码注释 ,演示很明确。



