jsp中Post和Get请求获取表单里的中文

Post:

     如果我们用Post请求方式,在获取表单中的Value值时,如果Value值为中文那么在网页中显示的是乱码,如图,当从文本框中输入汉字,点击提交后,虽然我们在代码中设置了编码方式为“utf-8”,但还是会出现2图中的样子。

是因为我们虽然是用“utf-8”,但是提交给服务器后,汉字会根据utf-8转换为二进制码,然后服务器获取到二进制码后去查询编码表(但不一定是utf-8),所以服务器查到的不一定是我们想要的汉字,,,

解决方法为:

       对于Post请求方式,我们可以在获取Value值之前告诉服务器去查哪个编码表,,,,即在获取值之前添加request.setCharacterEncoding("utf-8");如图;

这样才会得到我们想要的汉字。

Get:

    如果用Get请求方式,服务器会查询ISO-8859-1编码表,我们不能像Post请求方式那样去告诉服务器查询某张表,服务器不会听,,

这样的话,我们需要先根据ISO-8859-1表获取到机器码,用byte[] b=a.getBytes("ISO-8859-1"),然后再从utf-8表中查询机器码所对应的值,用

String s=new String(b,"utf-8"),这时s的值便是最终的值(汉字)。


所以为了方便,建议使用Post请求方式!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值