从浏览器获取的表单中的中文乱码问题

        在学egov是,浏览器上发送的请求到服务器,在servlet中获取表单中的数据时,出现了中文乱码的问题。

1、这里的 jsp 页面中的编码方式设置为UTF-8,表示在浏览器端页面的编码方式式UTF-8,发送的数据也是UTF-8的形式。                                                                                                                       而在servlet中接送数据时设置的编码方式为GBK,所以出现乱码:百度-鐧惧害

 2、解决设置servlet中获取浏览器编码方式为UTF-8,即可。

3、在jsp中设置编码方式为UTF-8,servlet不设置,默认是utf-8的方式接收【idea的编码设置为GBK】的乱码为:百度 - ç¾åº¦

总结如下:

        jsp:UTF-8 ,servlet不设置,乱码:百度 - ç¾åº¦

        jsp:GBK /GB18030, servlet不设置,乱码:百度 - °Ù¶È

        jsp UTF-8, servlet :GBK,  乱码:百度-鐧惧害

解决:

        jsp:UTF-8, servlet :UTF-8 ,不乱码

        jsp:GBK/GB18030 , servlet :GBK /GB18030 , 不乱码

4、浏览器发送get请求,使用idea工具,serlvet接收乱码时,解决:

String username=request.getParameter("username");
byte[] bytes = dname.getBytes("ISO-8859-1");//解码
username = new String(bytes, "GBK");//编码,这里的编码方式和idea工具中设置的编码方式一致

结合:
String username = new String(request.getParameter("username").getBytes("ISO-8859-1"),"GBK");

 5、浏览器发送post请求,使用idea工具,serlvet接收乱码时,解决:

request.setCharacterEncoding("utf-8");//这里和浏览器页面采用的编码方式一致,和idea工具编码方式无关

6、通过url发送请求乱码时:

在学习jstl时,发现使用S{param.username}和<%=request.getParameter("username)%>时获取的中文乱码,修改了E:\Java-software\apache-tomcat-9.0.30\conf下面的server.xml  设置为utf-8中文不乱码了,设置为GB18030时乱码,不知什么原因。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值