已解决:请求参数中文乱码(POST和GET请求)

输入中文姓名,控制台乱码 

解析:POST请求通过流的方式读取数据,即getReader(),tomcat默认获取流的编码并非utf-8,所有出现乱码。因此只需要在获取数据前设置编码即可。 (仅用作POST请求解决方式,GET请求不可用)

POST请求中文乱码解决方案:
req.setCharacterEncoding("UTF-8");//在读取数据前加上这句即可转换读取流的编码
String username=req.getParameter("username");
String fullname=req.getParameter("fullname");
String password=req.getParameter("password");

设置后读取中文正常

tomcat使用url编码,GET请求乱码需先对乱码数据进行编码转为字节数组,后再对字节数组解码。

GET请求中文乱码解决方案:
//进行编码
byte[]bytes=username.getBytes(StandardCharsets.ISO_8859_1);
//进行解码,所得username可正常中文输出
username=new String(bytes,StandardCharsets.UTF_8);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值