栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb学习——Request参数中文乱码处理(11)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaWeb学习——Request参数中文乱码处理(11)

目录

问题Post解决方案Get解决方案

URL编码

解决办法 演示

问题

首先演示get的乱码

我们传进了带中文的参数,结果发现控制台上确实是乱码

然后用post演示,发现也是乱码

Post解决方案

由于我们知道post的读入数据的方式是字符串流,而且用的编码方式是ISO-8859-1所以我们规定它编码方式为UTF-8,把它放在doGet或doPost方法内的最上面即可

Get解决方案

get就麻烦多了,因为get底层的获取方式与post不一样,post是读入流,而get是字节读入

如果用刚刚post的方式,我们可以看到结果还是乱码,这说明确实不能直接套用

然后再剖析一下原理我们发现就像下面这张图

而tomcat里的ISO-8859-1是写死的,并且并没有仍和解码方式给我们,所以不能用’设置编码方式’来解决

URL编码

将字符串按照编码方式转为二进制,每个字节转为2个16进制并在前面加上%


在java里面由这两个工具类可以进行URL编码与解码:
URLEncoder里encode
URLDecoder里decode

解决办法

我们可以发现这两个不同的编码方式有一个地方是共同的:底层二进制
因此,我们可以把它转成二进制字节数据,再转成UTF8就好了

传入的参数是张三

我们可以发现张三确实又变回了张三
所以写成一句话就是
${name} = new String(username.getBytes(StandardCharsets.ISO_8859_1),StandardCharsets.UTF_8);

演示

因此,我们可以实现对后台乱码的处理
写一个表单,链向Servlet.java
重新编码与输出

结果便没有了乱码!

感谢黑马!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/726592.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号