1、使用get和post进行数据提交都会乱码
1.1 随便写一个表单
2、提交中文发现控制台乱了码
3、 request.setCharacterEncoding("UTF-8"); //定义字符流的编码规则,这种定义方法是用来解决,POST请求方法
4、如果表单发送的是get请求就不可以了
5、GET为什么不能解决中文乱码getQueryString,用的是这个方式,并没有走流
6、浏览器会对字符串进行一些编码处理
7、编码用的是UTF-8进行的规则解决
8、6 * 8 = 48个字节位
9、
10、浏览器帮忙转换
11、浏览器主动帮你转换数据
12、Java提供的URL编码规则:
13、六个%,URL编码规则
14、 演示了一下编码规则,URL变了码,又解了码
15、他们的相同点事相同的,他们的都是底层的2进程字节
16、这个decode就是乱码数据
17、字符串转换为字节数据
六个数组转换为6个字节
18、最终转换的十进制表现形式就是-119
19、我们可以看一下,这里怎样解决:
20、使用这种方法,可以将字节数组转换为字符串
new String(bytes ""); 这里可以放入一个字符数组
21、我重新拿到这一串二进制的数据
22、解决get提交,我们先对乱码进行编码,前面需要获取到一些数据
23、通过这两行代码,解决了中文乱码问题
1. byte[] bytes = username.getBytes(StandardCharsets.IS0_8859_1); 2. 3. //3.2 字节数组解码 4. username = new String(bytes, StandardCharsets.UTF_8);
24、如果你想一行代码解决get提交问题,可以这样
username = new String(username.getBytes(StandardCharsets.IS0_8859_1),StandardCharsets.UTF_8);
先解码,在转码,核心操作逻辑,注意这种方法也可以解决post请求方式